将子调用到另一个工作表

时间:2014-10-17 16:19:08

标签: excel vba excel-vba

我有一个子程序遍历每个工作表并检查标志。

如果该标志被引发,我希望它运行另一个子。标志检查有效,但被调用的另一个子程序在主页上运行。

代码:

Sub update()
    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
        If (ws.Cells(1, 5) = 1) Then
            Call update2(ws)
        End If
    Next
End Sub


Sub update2(ws As Worksheet)
    ws.clear   <----does not work
End Sub


sub dothis() 
    cells(1,6) = "hallo"
end sub

我该如何让它发挥作用?

2 个答案:

答案 0 :(得分:1)

Sub update2(ws As Worksheet)
    ws.Cells.Clear
End Sub

答案 1 :(得分:1)

您需要使用公共变量(通常不推荐)或将必要的参数发送到需要它们的过程。

Sub update2(ws As Worksheet)
    Call dothis(ws)
End Sub


sub dothis(ws as Worksheet) 
    ws.cells(1,6) = "hallo"
end sub