使用变量调用excel VBA模块

时间:2015-06-18 05:32:02

标签: excel vba excel-vba

我想在excel VBA中的多个区域使用下面的代码,但是代码中的变量必须进行一些更改才能使其特定于该区域。例如,

Dim XXXcountcurrent As Long

' Delete the items containing the word XXX in Material current
    Sheets("Materials Current").Select
    Range("A2:C" & Cells(Rows.count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select
    If XXXcountcurrent <> 0 Then
    Selection.Rows.Delete
    End If
    ActiveSheet.Range("$A:$C").AutoFilter Field:=2

'Paste XXX total in workings sheet
    Sheets("Workings").Select
    rcell.Offset(?) = XXXcountcurrent

上面的代码是取自VBA的一小部分。所指示的XXX指的是不同的场景,例如,它可以引用"knife""handle"等。此外,我希望在由...指示的代码中调整偏移小区。 (我不张扬这也必须是可变的。)

当只进行很小的更改时,我不想重复代码。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

你有很多选项,我很可能在子例程中有这个可重复的代码,并在调用时填充变量。

以下是如何以非常基本的格式执行此操作的示例:

Sub TestCallingSubs()
    CallingSubs "Hello"
    CallingSubs "World"
    CallingSubs "!!!!!"
End Sub

Sub CallingSubs(MyString As String)
    MsgBox MyString
End Sub

答案 1 :(得分:0)

将代码放在子例程中,例如:

Sub DoSomething(ByVal xxx As String, ByVal myOffset As Long)
    'here's your code
End Sub

然后这样称呼:

Sub Whatever
   DoSomething "John Doe", 0
End Sub