我无法抓取指定的变量并将其取消。我做错了什么?
Public Sub SampleBox_Change()
Dim str As Integer
If (SampleBox.ListIndex > -1) Then
str = SampleBox.List(SampleBox.ListIndex)
End If
End Sub
Public Sub Samplesdel(str As Integer)
Range(Range("BA1").EntireColumn, Range("BA1").Offset(0, -str).EntireColumn).Select
End Sub
Public Sub CommandButton1_Click()
Application.Run "Samplesdel"
End Sub
因此变量(str)是一个整数。我想用这个数字来选择一定数量的列(从BA1到“左边有很多列,值为str”)。所以如果用户选择8我想选择BA1并留下8列。
组合框位于用户表单中,其中设置了指定变量的代码。
我想在宏中使用指定的变量(我使用了select函数)。
因此变量str从userform组合框中分配。然后我想把这个变量传递给一个宏,我在偏移函数中使用它。
答案 0 :(得分:1)
我刚刚在这里使用了你的代码片段,我假设你知道你要用这个来完成什么。正如另一个答案中所提到的,我认为这是一个范围问题;看起来你不能将你的陈述合并如下:
Public Sub SampleBox_Change()
Dim str As Integer
If (SampleBox.ListIndex > -1) Then
Range(Range("BA1").EntireColumn, Range("BA1").Offset(0, SampleBox.ListIndex).EntireColumn).Select
End If
End Sub
要添加一些未经请求的反馈,命名一个整数为“str”的变量会让其他任何必须读取代码的人感到困惑,名称“str”意味着“字符串”,这是一种不同的数据类型。
答案 1 :(得分:0)
詹姆斯,你在这里设置str的值是正确的吗?
Public Sub SampleBox_Change()
Dim str As Integer
If (SampleBox.ListIndex > -1) Then
str = SampleBox.List(SampleBox.ListIndex)
End If
End Sub
str的范围只是这个函数,任何其他函数都无法访问它。
您将什么值传递给Samplesdel作为参数?
Application.Run "Samplesdel"