【发布时间】:2018-02-18 10:01:22
【问题描述】:
在下面显示的代码中出现以下错误,
编译错误
参数数量错误或属性分配无效
Public Sub ListBox1_Click()
Dim ShNameRow As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Set T1 = Range("A" & i + 13).Resize(26 - i, 1)
Set T2 = Range("E" & i + 13).Resize(26 - i, 2)
Set T3 = Range("K" & i + 13).Resize(26 - i, 1)
Set y = Application.Union(T1, T2, T3)
y.Select
Selection.Copy
ShNameRow = 13 + i
'Error with passing this variable
CopyData_Click (ShNameRow)
End If
Next i
End Sub
Private Sub CopyData_Click()
'Testing variable
MsgBox (ShNameRow)
End Sub
-
更新
我尝试了将变量从一个子传递到另一个子的例子,因为我觉得我的代码更适用。
公共子ListBox1_Click()
Dim ShNameRow As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Set T1 = Range("A" & i + 13).Resize(26 - i, 1)
Set T2 = Range("E" & i + 13).Resize(26 - i, 2)
Set T3 = Range("K" & i + 13).Resize(26 - i, 1)
Set y = Application.Union(T1, T2, T3)
y.Select
Selection.Copy
ShNameRow = 13 + i
'Error with passing this variable
CopyData_Click (ShNameRow)
End If
Next i
End Sub
Private Sub CopyData_Click(ListboxShNameRow As Integer)
MsgBox (ListboxShNameRow)
End Sub
这会带来另一个编译错误,由下面的块引用显示
Private Sub CopyData_Click(ListboxShNameRow As Integer)
过程声明与同名事件或过程的描述不匹配
【问题讨论】:
-
哪一行给出了错误?
-
@ashleedawg
CopyData_Click (ShNameRow)给出错误 -
是的,我知道发生了什么事......你有一些潜在的问题,但我会在回答中专注于你的问题......
-
下面有几个答案。不要忘记 ✓ 接受 一个可以帮助您解决问题的答案,并 ▲ Upvote 任何您认为写得好的答案。
-
@ashleedawg 刚从晚餐回来,给我一些时间来测试一下,没想到会有这么快的反应。谢谢
标签: vba global-variables parameter-passing