VBA学习笔记:在vba中使用内置函数的两种方式

Excel中有很多内置函数,在VBA中想要使用这些内置函数,该怎么使用呢?

Mid(string, start[, length])

部分

说明

string

必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Null

start

必要参数。为 Longstring 中被取出部分的字符位置。如果start 超过 string 的字符数,Mid 返回零长度字符串 ("")

length

可选参数;为 Variant (Long)。要返回的字符数如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。

示例:单元格E3中有字符串“ABCD1200456”,使用函数“=MID(E3, 7, 2)”计算结果为“00”

在VBA中使用,两种方式:

  1. 直接赋值给某个单元格: Sheet1.Range(“A3”) = “=Mid(A1, 7, 2)”

  1. 赋值给变量:

Dim squenceNo As String

squenceNo = Mid(A1, 7, 2)

MsgBox(squenceNo)

不幸的是,显示结果为空。

后来思索了一下,第1种方式整个函数放在了双引号里面,是一个整体赋给了这个单元格。而第2种方式中A1似乎是个变量,并没有定义啊,于是改成

squenceNo = Mid(Range("A1").Value, 7, 2)

成功!

所以问题在于在VBA使用内置函数时,单元格引用方式需要调整,直接写A1,他不认识。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,这是VBA学习笔记的第一篇文章,涵盖两个主题:自动添加代码和VBA修改注册表。下面是更详细的介绍: ## 自动添加代码 在VBA,我们可以使用代码自动添加代码。这通常用于在编写宏时自动添加模板代码或辅助代码。下面是一个简单的示例,演示如何使用VBA自动添加代码: ```vb Sub AddCode() '获取当前文档的VBProject对象 Dim vbProj As VBIDE.VBProject Set vbProj = ActiveWorkbook.VBProject '获取当前文档的Sheet1模块 Dim sheetMod As VBIDE.CodeModule Set sheetMod = vbProj.VBComponents("Sheet1").CodeModule '添加VBA代码 sheetMod.InsertLines 1, "Sub HelloWorld()" & vbCrLf & _ " MsgBox ""Hello, World!""" & vbCrLf & _ "End Sub" End Sub ``` 上述代码将在当前文档的Sheet1模块添加一个名为"HelloWorld"的子例程,并在调用该例程时显示一个消息框。 ## VBA修改注册表 VBA可以使用Windows API函数来修改Windows注册表。这对于配置或自定义Windows系统非常有用。下面是一个简单的示例,演示如何使用VBA修改注册表的一个键值: ```vb Option Explicit Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" ( _ ByVal hKey As Long, _ ByVal lpSubKey As String, _ ByVal ulOptions As Long, _ ByVal samDesired As Long, _ ByRef phkResult As Long) As Long Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" ( _ ByVal hKey As Long, _ ByVal lpValueName As String, _ ByVal Reserved As Long, _ ByVal dwType As Long, _ ByVal lpData As Any, _ ByVal cbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" ( _ ByVal hKey As Long) As Long Private Const HKEY_CURRENT_USER = &H80000001 Private Const KEY_SET_VALUE = &H2 Private Const REG_SZ = 1 Sub ModifyRegistryKey() Dim hKey As Long Dim result As Long '打开注册表键 result = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", 0, KEY_SET_VALUE, hKey) If result = 0 Then '设置键值的值 result = RegSetValueEx(hKey, "Hidden", 0, REG_SZ, "2", 2) '关闭注册表键 result = RegCloseKey(hKey) End If End Sub ``` 上述代码演示了如何将 "Hidden" 键的值设置为 "2",这将隐藏文件资源管理器的隐藏文件和文件夹。请注意,修改注册表可能会导致系统不稳定,因此在进行任何修改之前,请备份您的注册表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值