我试图在模块1中建立变量LastRow
,可以在其他子模块和模块中使用。下面是我实际工作簿中的简化版本。
- 一个叫别人的子,
- 一个创建公共变量的子,
- 另一个子模块在一个不同的模块中,公式依赖于Sub CreateVariable
中的变量。
我已经在这里获得了很多帮助,而且我在网上看到的声明公共变量应该非常简单......但是我没有得到它。有人可以帮忙吗?提前谢谢!
第1单元
Sub CallOthers()
Call CreateVariable
Call AddFormula
End Sub
第1单元
Public LastRow As Long
Sub CreateVariable()
Dim ws As Worksheet
Set ws = Worksheets("Variance")
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
End Sub
第2单元
Sub AddFormula()
ws.Range("D2:D" & LastRow).FormulaR1C1 = "=RC[-2]-RC[1]"
End Sub
答案 0 :(得分:2)
第1单元
Public LastRow As Long
Public ws As Worksheet
Sub CreateVariable()
Set ws = Worksheets("Variance")
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
End Sub
Sub CallOthers()
Call CreateVariable
Call AddFormula
End Sub
或@ Mat'sMug表示传递为变量
第1单元
Sub CallOthers()
Dim LastRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Variance")
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Call AddFormula(ws,LastRow)
End Sub
第2单元
Sub AddFormula(ws As Worksheet, LastRow As Long)
ws.Range("D2:D" & LastRow).FormulaR1C1 = "=RC[-2]-RC[1]"
End Sub