VBA基础(宏编程)

news2024/11/24 10:05:06

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)
            
        Next
        
    Next
    
    '-----关闭连接----
    dbConn.Close
        
End 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/650532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DolphinDB +机器学习,预测地震波形数据

1. 地震波形数据预测业务场景说明 在地震波形数据异常检测场景中,通常需要使用多种工具和方法来提高检测精度和鲁棒性。其中,FilterPicker 是一种常用的基于模板匹配的异常检测工具,可以实现地震波形数据的实时异常检测和定位。FilterPicker…

为什么看了那么多测试技术帖,自己都没有提升?

作为测试新手,最爱莫过于看各大牛发的技术贴,这篇很牛叉,那篇也很有道理,似乎自己看着看着也会成为高手。然而几年后,发现自己对专业知识的理解乱的很,里面更有很多自相矛盾的地方,这到底是哪里…

RedisSon高并发分布式锁实战

Redis高并发分布式锁实战 1.分布式场景下的synchronized失效的问题–用redis实现分布式锁 synchronized是通过monitor实现的jvm级别的锁,如果是分布式系统,跑在不同的虚拟机上的tomcat上,会导致synchronized无法锁住对象 ----------- 需要分…

01分数规划 易懂+例题讲解 (c++)

01分数规划 :01即取还是不取,分数即所求型式为,规划就是选取最好的方案。 一般情况题目给出n个物品,再给出每个物品的价值以及物重,选取k个物品,问你在所有可能选取的方案中,最大的单位价值为多…

通过零代码ETLCloud实现马帮ERP数据自动化同步

马帮ERP介绍 马帮ERP是一款云端跨境电商管理软件。与传统的ERP系统不同,马帮ERP专注于跨境电商领域,为电商企业提供一站式管理解决方案,包括财务管理、采购管理、进销存管理、订单管理等功能模块。该平台针对跨境电商行业特点,提…

MM32F3273G8P火龙果开发板MindSDK开发教程20 - freertos + letter shell 的移植

MM32F3273G8P火龙果开发板MindSDK开发教程20 - freertos letter shell 的移植 1、freertos下载 官网传送门 2、freertos移植 1、在工程目录device下新建freertos目录,将下载的源码source目录下的七个.c文件copy到新建的freertos目录。 2、将source/protable/G…

Word 2021入门指南:详细解读常用功能

软件安装:办公神器office2021安装教程,让你快速上手_正经人_____的博客-CSDN博客 一、 新建文档 打开Word 2021后,可以看到左上角的“文件”选项,点击它,在弹出的菜单中选择“新建”选项。然后可以选择空白文档或者使…

vue3+ts+vite+element plus中使用luckysheet(预览效果)

前言: 这两天一个项目,需要在页面中以excel的形式展示大量数据,喜欢偷懒的我果断扒拉了一堆适用于vue3的插件,下面简单说说我使用的luckysheet 使用: 一、准备一个vue3tsviteelement plus的项目 此处省略n个字。。。…

如何用 WampServer+快解析 搭建php文件管理器

基于网络,资源是大家最最基本的需求,许多网络爱好者不求利益,把自己收集的一些通过一些平台共享给大家,这就是资源共享。 资源共享程度越高,代表信息发展水平越高。现实工作中,由于用户提供的数据可能来自…

Linux基础IO - 软硬链接 | 动静态库

之前的文章中我们讲述了软硬链接中有关软连接的知识,本文中将继续讲述硬链接部分的知识,并且讲述一下动静态库的相关内容。 硬链接 硬链接本质上就是在当前目录建立一个新的文件名与指定文件inode的关系。 每当我们在当前目录下建立一个硬链接就会让文…

C++11多线程之条件变量

文章目录 一、关于多线程的同步二、初始条件变量三、关于条件变量的例题四、生产者消费者模型 一、关于多线程的同步 //函数被调用,分配相应的栈帧,进行现场保护void func(char c) {char filename[20] {};sprintf(filename, "test%c.txt",c)…

Fiddler Response私人订制

在客户端接口的测试中,我们经常会需要模拟各种返回状态或者特定的返回值,常见的是用Fiddler模拟各种请求返回值场景,如重定向AutoResponder、请求拦截修改再下发等等。小编在近期的测试中遇到的一些特殊的请求返回模拟的测试场景,…

《变形金刚7》票房大跳水!特效敷衍?剧情单薄?汽车人的未来在哪里?

《变形金刚:超能勇士崛起》 6.11(上映第3天) 单日票房8200万 6.12(上映第4天) 单日票房2173万 6.13(上映第5天) 单日票房1700万 说实在的,真没想到《变形金刚7》日票房会如此大幅…

高压放大器在铁电材料中的应用研究

铁电材料是一种具有特殊磁电性能的材料,包括压电陶瓷、磷酸铁钠陶瓷、氧化锌压电陶瓷等。这些材料在电力、电子、机械等领域有广泛的应用,如超声波发生器、声纳、压力传感等。其中,高压放大器在铁电材料中有着重要的应用。 一、高压放大器的基…

完美搭建一个vue3+ts项目(一篇文章搞定你的所有疑惑)

目录 一、创建vite项目 二、启动vite项目 三、处理一些配置问题 四、增加工程化插件 1、安装sass 2、安装vue-router 3、安装pinia 4、安装element-plus 5、安装axios 6、设置路径别名,将相对路径改为绝对路径 一、创建vite项目 1、在一个文件夹下通…

Vision Pro:为什么空间音频是AR的绝杀武器?

Apple Vision Pro,不仅仅是苹果全新的重磅品类,而且在它身上也融合了苹果过去几乎所有新技术,比如空间音频就是其中一个例子。 苹果表示,Vision Pro中空间音频可以很好的应用在:影视节目、游戏内容、3D空间照片、3D空…

金融风控项目实战-银行信用卡流失预测模型_基于ANN神经网络_金融培训_论文科研_毕业设计

业务背景 根据央行公布的数据显示,全国性银行信用卡和借贷合一卡的发卡量增速从2017年同比增速26.35%的高点逐年下降,截至2020年同比增速降至4.26%。银行信用卡发卡增速明显放缓的背景下,预防老客户流失的问题变得愈发重要。 假设一家消费信…

pytest+allure

知识点1: 1、测试结果信息阅读 passed表示通过,有个简写. failed表示失败,有个简写F 2、命令行参数 -h:帮助 -version:版本信息 3、测试用例命名规则: 测试函数必须以test开头 测试类必须以Test开头…

我为开放原子全球开源峰会助力:共建开源之梦

我为开放原子全球开源峰会助力:共建开源之梦 6月11日,以“开源赋能,普惠未来”为主题的2023开放原子全球开源峰会开幕式暨高峰论坛在北京成功举办。 开源的力量与魅力 开源是当今软件行业中不可忽视的力量,它为技术的快速发展和…

入职滴滴和字节的2 年里,我感觉忒真实了……

引言 先简单交代一下背景吧,某不知名985的本硕,17年毕业加入滴滴,之后跳槽到了头条,一直从事软件测试相关的工作。之前没有实习经历,算是两年半的工作经验吧。 这两年半之间完成了一次晋升,换了一家公司&…