在模块中声明公共变量

时间:2017-08-24 20:25:14

标签: excel vba

我试图在模块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

1 个答案:

答案 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