1. vbs循环读取当前行
VBS中可以通过right函数获取字符串右边的字符
x="生活是什么样子的"
y = right(x, len(x)-1) ‘获取第一字字符之后的所有字符字符msgbox y
left函数可以获取字符串左边的字符
x = left(x, 1) '获取第一个字符
len获取字符串的长度
len(x)
split函数分割字符串
x = "1,2,3"
split(x, ',')s
2. vbs循环读取多个输入域
i/o域的属性中输入输出属性连接变量a,按钮脚本:事件中点击左键Dimaseta=hmiruntime.tags("a")a.readhmiruntime.tags("b").writea.value你试试
3. vba循环读取一列数据
比如说A3 在任意单元格输入=row(a3)结果为3(行数) =column(a3)结果为1,列数
4. vba 循环sheet
这么弄就可以了 :
①、在工具-选项-重新计算里,有自动重算选项,点选它,就能自动刷新。
②、有些函数公式在设定为自动重算的状态下仍然不能自动刷新,因为这些公式中包含非易失性函数的跨工作表、工作薄的引用。这时,需要根据公式得到的结果添加易失性函数来强制其自动刷新。通常,对于得到的结果为文本的公式,就在其后添加:&T(NOW()),而对结果为数值的公式,添加:+ISTEXT(NOW())
③、VBA中有控制自动重算的功能。你在手动修改自动重算的设置的同时录制宏,就能看到它的代码:
Application.Calculation = xlAutomatic'设置为自动重算
Application.Calculation = xlManual'设置为手动重算
5. vba循环读取excel
注意 c:\a 目录下的文件不要太多,免得死机 Sub 打开excel表格() Dim myPath$, myFile$, AK As WorkbookApplication.ScreenUpdating = False '冻结屏幕,以防屏幕抖动 myPath = "c:\a\" '把文件路径定义给变量 myFile = Dir(myPath & "*.xls") '依次找寻指定路径中的*.xls文件 Do While myFile <> "" '当指定路径中有文件时进行循环 If myFile <> ThisWorkbook.Name Then Set AK = Workbooks.Open(myPath & myFile) '打开符合要求的文件 End If myFile = Dir '找寻下一个*.xls文件 Loop Application.ScreenUpdating = True '冻结屏幕,此类语句一般成对使用 End Sub
6. vba中for循环
1. VBA 局部变量和全局变量
2. VBA 变量赋值
3. VBA 选中一个Sheet
4. VBA 获取单元格内容
5. VBA 获取单元格行号和列号
6. VBA 单元格赋值
7. VBA Range获取单元区间
For Each cellVal In ThisWorkbook.Sheets(1).Range(startColName & rowNum & ":" & endColName & rowNum)
'cellVal即单元格的内容
'cellVal.Column 列号
'cellVal.Row 行号
Next
8. VBA 使用Find搜索单元格内容
在使用Find的时候经常会遇到两个问题: 1. VBA Find搜索失败,抛出异常 使用VBA中Find搜索内容,当搜索失败时,会抛出异常导致程序无法正常处理 解决方法如下,使用Rng存储,然后用If Not Rng Is Nothing Then判断。
Set Rng = ThisWorkbook.Sheets(1).Range(colName & firstRow & ":" & colName & lastRow).Find(styleColor)
If Not Rng Is Nothing Then
’可以找到(这里处理)
End If
Find循环破除 使用VBA中Find搜索内容,会出现循环搜索的问题,此时,可以使用判断是否回到第一次作为判断,断开循环。
Set Rng = ThisWorkbook.Sheets(1).Range(colName & firstRow & ":" & colName & lastRow).Find(styleColor)
If Not Rng Is Nothing Then
rowNum = Rng.Row
firstMatchRow = rowNum
While rowNum
' 这里写处理逻辑
' 继续搜索单店指定店铺
Set Rng = ThisWorkbook.Sheets(1).Range(colStyleColor & firstRow & ":" & colStyleColor & lastRow).Find(styleColor, after:=Range(colStyleColor & rowNum))
If Not Rng Is Nothing Then
rowNum = Rng.Row
End If
' 如果搜索回到第一个,退出函数 '
If firstMatchRow = rowNum Then
rowNum = fasle
End If
Wend
End If
9. VBA While循环退出循环
While i < 100
'这里处理逻辑 '
If i = 20 Then
i = 100 '利用While的破坏条件退出循环 '
End if
Wend
10. VBA 字典类型使用
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
If dic.exists(key) = False Then
dic.Add key, val
End If
' 循环读取字典内容 '
For Each key In dic
val = dic.Item(key)
Next
' 移除一个内容 '
dic.Remove(key)
' 移除全部内容 '
dic.RemoveAll
11. VBA For 循环
For i = 1 To 10
MsgBox i
Next i
12. VBA 获取最大行号
13. VBA If ElseIf
Name = "vba"
If Name = "vba" Then
MsgBox "Yes"
ElseIf Name = "xxx" Then
MsgBox "No"
Else
MsgBox "X"
End If
14. VBA 函数定义
' 1~num求和 '
Function getSum(num)
Sum = 0
For i = 1 To num
Sum = Sum + i
Next i
' 返回值为函数同名变量赋值 '
getSum = Sum
End Function
15. VBA 函数返回值
VBA中的字典无法作为返回值,此时需要借助全局变量传递返回值
Public tmpDic As Object
Function test()
Set tmpDic = CreateObject("Scripting.Dictionary")
tmpDic.Add "a", 5
End Function
16. VBA 退出Sub或Function
使用exit sub或exit function即可
17. VBA 注释
VBA使用单引号作为注释
18. 复制Sheet
19. 添加Sheet
Worksheets.Add().Name = "Sheet xxx"
7. vba循环
为了避免worksheet_change事件过程中对单元格的赋值操作造成这个事件的反复触发,可以在这个过程的前面加一句 Application.EnableEvents=False,在过程的最后加一句Application.EnableEvents=True
- 相关评论
- 我要评论
-