【发布时间】:2016-09-16 16:31:57
【问题描述】:
我正在尝试在 3 个不同的范围上运行一个宏,一个接一个。一旦选择了范围,代码就可以正常工作(定义了变量 F 和 L)。我想将r1-r3 设置为我需要的范围,然后使用字符串变量将范围数字连接在一起。此代码有效,但不提供所选范围内的起始行号和结束行号。这很重要,因为它告诉“TableCalc”宏何时启动和停止代码。然后我想进入下一个范围。感谢您的帮助。
Sub TestRangeBC()
WS.Select
Dim r1 As Range
Dim r2 As Range
Dim r3 As Range
Dim rngx As String
Dim num As Integer
Dim rng As Range
Set r1 = WS.Range("ONE")
Set r2 = WS.Range("TWO")
Set r3 = WS.Range("THREE")
For num = 1 To 3
rngx = "r" & num
Set rng = Range(rngx)
Dim F As Integer
Dim L As Integer
F = rng.Row + 1
L = rng.Row + rng.Rows.Count - 2
Cells(F, 8).Select
Do While Cells(F, 8) <> "" And ActiveCell.Row <= L
'INSERT SITUATIONAL MACRO
Call TableCalc
WS.Select
ActiveCell.Offset(1, 0).Select
Loop
Next num
End Sub
【问题讨论】:
-
“它告诉 TableCalc 宏何时启动和停止代码”是什么意思?我没有看到使用的任何参数或全局变量。
-
Don't use
.Select在您的“情境宏”部分。这可能会有所帮助。另外,您的命名范围是单行吗?还是多行?如果您使用F8遍历宏,F会设置为什么?此外,您需要指定您希望获得 `Cells(F,8) 的工作表。 -
@Tony Abadie 是
TableCalc与此Sub在同一模块中的代码?为什么Cells(F, 8) <> ""不在Do While循环中前进?