VBA基础(宏编程)
VBA介绍:
Visual Basic for Applications(VBA)是 VisualBasic 的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展 Windows 的应用程序功能,特别是Microsoft Office软件。
编写第一个VBA宏
「宏」:简单的说,宏是一段可以运行的 VBA 代码片段。
首先打开excel的开发者模式:
数据类型:
变量格式:
Dim 变量名 As 数据类型
Dim strConn As String
数组:
Dim user() As Variant
函数:
弹窗函数:MsgBox()
小脚本:
Sub QueryOracle()Dim strConn As String '链接字符串'Dim dbConn As Object '链接对象'Dim resSet As Object '查询结果集''创建数据连接对象'Set dbConn = CreateObject("ADODB.Connection")Set resSet = CreateObject("ADODB.Recordset")'拼接链接字符串strConn = "Driver={Oracle in instantclient_19_18};Dbq=ORCL216;User Id=用户名;Password=密码;OLEDB.NET=True;CodePage=65001;"'数组Dim user() As Variant'-----打开数据库------'dbConn.Open strConn'sql语句Set resSet = dbConn.Execute("select * from user")'将查询数据存入数组中user = resSet.GetRows(resSet.RecordCount)'循环行高For i = LBound(user, 2) To UBound(user, 2)'循环列数For j = LBound(user, 2) To UBound(user)'将数组中的值写入sheet页中Sheet1.Cells(2 + i, 1 + j) = user(j, i)NextNext'-----关闭连接----dbConn.CloseEnd Sub
单元格:
VBA连接Oracle:
方法:免安装客户端+ odbc
1、下载基本包
本地需要准备两个包 instantclient-basic 和 instantclient-odbc
官网:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
下载后将两个包解压到同一个目录下,我是解压到D:\D\w\instantclient_19_18,记住这个位置
配置oracle 网络文件
需要配置一个网络文件 tnsnames.ora ,这个文件的作用是让本地客户端知道需要访问的数据库地址和相关信息
在刚才解压的那两个包的目录下新建 “network\admin” 这个目录,将tnsnames.ora 这个文件放在这下面
tnsnames.ora 文件内容
# tnsnames.ora Network Configuration File: D:\app\zico\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.ORCL_win10 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.133.129)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
第三步、安装odbc 驱动、配置DSN数据源
1 安装odbc 驱动
打开我们电脑的数据源【我是win10 64位的】,可以看到目前的驱动程序没得和oracle 相关的
电脑搜索:odbc
点击压缩文件后
就有驱动了
2 配置DSN数据源
为啥要配置这玩意?其实是因为我们没有安装相应的客户端,excel 只有先从windows 的环境中查找是否有相应的驱动
同样的在 ODBC数据源管理程序(64位)这里,点击 用户 DSN ⇒ 添加
Data Source Name 这里随便填写
TNS Service Name: 必须填写你 oracle -》 network\admin 目录下的 tnsnames.ora 文件中为远程数据库设置别名
D:D\w\instantclient_19_18\network\admin\tnsnames.ora
点击 test connection 进行数据库链接测试,输入用户名密码,点击ok 进行测试,在填写正确的情况下就会 弹出 connection successful.
如果弹出其他的请自行百度,一般是上面哪些信息填写错误了
User name :远程数据库用户登录的密码
Password :登录密码
第四步 VBA链接数据库测试
4.1 设置相应的 Windows 环境变量
1、path 环境变量后边加上客户端文件地址:D:\D\w\instantclient_19_18
2、TNS_ADMIN 新建这个变量,值根据自己的情况按照图示填写
3、新建 NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 这个变量是为了防止 oracle 中文变成乱码
代码连接:链接字符串说明
cnn.Open "Driver={Oracle in instantclient__12_1};Dbq=tnsnames.ora中数据库别名或者tnsnames.ora中整个串;User Id=数据库用户名;Password=密码;"{Oracle in instantclient__12_1} : 就是你配置DSN的时候添加的数据源驱动的名字;
Dbq:tnsnames.ora中数据库别名或者tnsnames.ora中整个串;
User Id:数据库用户名;
Password:密码
Sub ORACLE测试()Dim strConn As String '链接字符串'Dim dbConn As Object '链接对象'Dim resSet As Object '查询结果集''设置自己的链接信息'Dim db_sid, db_user, db_pass As String 'sid,用户名,密码'db_sid = "win10_Orcl_DNS"db_user = "system"db_pass = "123456"'创建对象'Set dbConn = CreateObject("ADODB.Connection")Set resSet = CreateObject("ADODB.Recordset")'拼接链接字符串' 'strConn = "Driver={Oracle in instantclient_12_1};Dbq=ORCL_win10;User Id=system;Password=123456;"'-----打开数据库------'dbConn.Open strConn'执行查询'Set resSet = dbConn.Execute("select count(1) from prd_part t")'粘贴结果Range("A2").CopyFromRecordset resSet'-----关闭连接----dbConn.Close '关闭数据库End Sub
————————————————
版权声明:本文为CSDN博主「dadaowuque」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dadaowuque/article/details/121366531
VBA基础(宏编程)相关推荐
- WPS JS宏编程是什么
WPS JS宏编程是一种基于JavaScript语言的自动化办公技术,可以通过编写脚本来自动化执行一些重复性的任务,例如格式化文本.生成报表.处理数据等.本教程将介绍WPS JS宏编程的基本概念.语法 ...
- js宏编程--wps开放平台介绍
在上篇<初识Excel的JS环境WPS宏编程>中提到,JS宏编程有2个比较好的参考资料,一个是官方的WPS开发平台介绍,另一个则是ES6教程,本文就WPS开发平台关于JS宏编程的重点做一个 ...
- makefile使用宏及用法$(宏标识符) $(cc)_宏编程的艺术
微信限制:不能放置链接,代码样式比较奇怪,发布后不能更新... 推荐 阅读原文: 写在前面 之前写过几篇关于 C/C++ 宏 (macro) 和 C++ 元编程 (metaprogramming) 的 ...
- vba 不等于_EXCEL中VBA基础语句(1)
萌二笔记分类目录及书单 一.If-Then语句 说明:条件判断,如果......那么......例1:A2单元格的成绩大于等于60,则弹出对话框提示"及格". Sub 判断成绩() ...
- VBA基础语法学习代码
Option Explicit ' 这行指令表示 变量需要显示声明 ,一般用在文件开头. 一.操作单元格对象 注释 Sub test()'弹出对话框' "'"注释 单引号Rem 另 ...
- VBA基础学习之1.2输入框(InputBox)
VBA基础学习之输入框(InputBox) InputBox函数提示用户输入值.当输入值后,如果用户单击确定 按钮或按下键盘上的ENTER 键,InputBox函数将返回文本框中的文本.如果用户单击& ...
- VBA基础学习之1.5循环语句
VBA基础学习之循环语句 当需要多次执行一段代码时,就可以使用循环语句. 一般来说,语句是按顺序执行的:函数中的第一个语句首先执行,然后是第二个,依此类推. 编程语言提供了各种控制结构,允许更复杂的执 ...
- 第一章、Excel VBA基础知识
01-01.Excel VBA简介 1.VBA是什么,能干什么 VBA可以说是一种编程语言,是VB的分支 VBA的作用,可以将重复的Excel工作简单化 2.VBA具备的基础知识 2.1基础操作,能发 ...
- Excel VBA 基础部分(变量声明、三大语句)
目录 Excel VBA 基础部分 一.变量声明语句 二.赋值语句.条件语句.循环语句 (一)赋值语句 1. Let语句 2. Set (二)条件语句 1. If...Then...Else语句 2. ...
- c语言 define宏名称if(参数),宏编程基础内容
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 使用过word软件可能知道里面有个功能就是宏录制,可以录制一系列的操作,然后在之后的工作中,快速插入一组操作,减少重复性 ...
最新文章
- Lesson 4.张量的线性代数运算
- ML之Clustering之K-means:K-means算法简介、应用、经典案例之详细攻略
- 从一个C程序学“逐步求精”的分析方法
- Linux系统下***软件大荟萃
- 第二章 Java基本语法(三)
- 与计算机硬件系统紧密相关的程序设计语言是,与计算机硬件系统紧密相关的程序设计语言是...
- android开发方法数,Android减少App方法数
- 数字城市杭州执法管理平台测试计划【软件测试与工程】
- 吴恩达神经网络和深度学习-学习笔记-45-完全版YOLO算法
- python读取pdf内容转word_卧槽!Pdf转Word用Python轻松搞定!
- POJ 2955 Brackets(区间DP)
- python 中断线程_如何编写快速且线程安全的Python代码
- 新手起步:通达信怎么编写指标公式以及通达信公式的使用方法
- Springboot 整合 druid
- 华为大数据学习笔记——ModelArts
- (经验贴)如何在Word里实现手写签名
- Access 的 AutoExec 宏
- u盘里删除的文件可以恢复吗?分享解决方法
- [bzoj1022] [SHOI2008]小约翰的游戏John
- Python轻松实现AI换脸