我知道vb的,不知vba可以不:
先把那些控件全部命名为同一个名称checkboxs,把index属性改为1~20
for i = 1 to 20
checkboxs(i)caption = "checkbox" & i
next
第6 行 '这个是你要输出的(图2的)列的序号
第7行 '这个是你的第一列需要查找a1:a30的范围(a1:a100就可以改为For j = 1 To 100)
第8行 'sheet2改成你工作表图1工作的名称(名称注意有没有空格),同理a1:a30也要改
第9行 'sheet3改成你工作表中图2工作的名称(同样的注意名称有没有空格)
第13行 k-3 的意思是输出的结果的来源(也是列的序号)。
Sub vlookup相 ()Dim i As Long
Dim j As Long
Dim k As Integer
Dim rng As Range
For k = 5 To 11
For j = 1 To 30
For Each rng In Worksheets("sheet2")Range("a1:a30")
If rng = Worksheets("sheet3")Cells(j, 1) Then
i = rngRow
End If
Next
Worksheets("sheet3")Cells(j, k) = Worksheets("sheet2")Cells(i, k - 3)
Next j
Next k
End Sub
你好,我来为你解答:
你把声明语句以外的代码放在sub end sub外面当然会"编译错误: 不正确的外部程序"了
可以先写一个公共过程,public sub 过程名end sub
例:
public sub abc
Dim Fer As String
Dim Axal, Axaw, Axsl, Axsw, Aoal, Aoaw, Aoql, Aoqw, r701, r700, Yer, Zer As Double
If Zer > r700 And (Fer = "L" Or Fer = "l") Then
r701 = Zer
ElseIf Yer > r700 And (Fer = "W" Or Fer = "w") Then
r701 = Yer
Else
r701 = r700
End If
Axql = Int((Axsl + Axsw + Aoal) / Aoaw Aoql - Aoqw)
Axqw = Int((Axsl + Axsw) (Aoal - Aoaw) / Aoql)
end sub
然后在工程内的其它过程或函数中通过过程名调用以上过程
例:
sub aaa
代码段
abc
代码段
end sub
你的程序复制数据的核心语句是:
Worksheets("余额表")Cells(i, "A")Resize(1, 4)Copy rng
可以在这个语句钱判断是否空表,如果是就把余额表的第一行拷贝过去:
if rngrow=2 and Worksheets(bj)Range("A1")="" thenWorksheets("余额表")Rows(1)Copy Worksheets(bj)Rows(1)
end if
以上就是关于VBA如何批量更改控件的内容全部的内容,包括:VBA如何批量更改控件的内容、EXCEL VBA如何实现批量自动按序号选择贴数据,将上表的数据自动贴入下面一个表,根据A列的编号来贴入、excel按列批量生成折线图,用VBA怎么编程程序编好后定义成宏,每次都可以调用要怎么设置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)