VBA变量定义了一个sub,并在多个subs中调用另一个sub

时间:2016-03-10 17:10:17

标签: excel vba excel-vba

我想调用我在另一个sub中编写的sub,并添加一些新东西,但是使用我在第一个sub中定义的变量在第二个sub中没有显示,甚至虽然在sub中调用了第一个宏。

例如,我已经将变量定义为sub之外的Public,但是我在第一个sub中定义的值,然后在第二个sub中调用的值会丢失。在下面的代码中,运行宏“test”工作,但“test1”给我一个“运行时错误'1004'”。

Public row1 As Integer
Public col1 As Integer

Sub test()

row1 = 2
col1 = 2
ActiveSheet.Cells(row1, col1).Select

End Sub

Sub test1()

Call test

ActiveSheet.Cells(row1, col1).Resize(6, 5).Select

End Sub

有关如何让row1和col1在test1 sub中工作的任何指导都会很棒。有没有更好的方法来实现我想要做的事情?

2 个答案:

答案 0 :(得分:0)

另一种选择是从sub传递变量以使用这样的公共函数:

Sub MainSubHere()
    'Some random code
    Dim AddMe1 As Long, AddMe2 As Long, MySum As Long
    AddMe1 = 2
    AddMe2 = 2
    MySum = AddMeSub(AddMe1, AddMe2)
    Msgbox MySum
End Sub

Public Function AddMeSub(AddMe1 As Long, AddMe2 As Long) As Long
    AddMeSub = AddMe1 + AddMe2
End Sub

答案 1 :(得分:0)

您可以尝试,但是这里还有其他需要改进的地方,例如使用<< 0:2而不是仅转到action语句。我把那个子排除在外,因为它没有用。

Select