我試圖在3個不同的範圍上一個接一個地運行一個宏。一旦選擇範圍,代碼就可以正常工作(定義變量F和L)。我想將r1-r3
設置爲我需要的範圍,然後使用字符串變量將範圍數字連接在一起。此代碼有效,但不會在所選範圍中提供起始和結束行號。這是至關重要的,因爲它告訴「TableCalc」宏何時啓動和停止代碼。然後我想繼續下一個範圍。謝謝你的幫助。excel vba將字符串轉換爲範圍
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宏時啓動和停止的代碼」是什麼意思?我沒有看到使用任何參數或全局變量。 – Comintern
[不要使用'.Select'](https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)在你的「情景宏」部分。這可能有幫助。另外,你的命名範圍是單排嗎?還是多行?如果你用'F8'瀏覽宏,什麼是'F'?另外,您需要指定您希望獲取'Cells(F,8)'的表。 – BruceWayne
@Tony Abadie是'TableCalc'代碼與這個'Sub'在同一個模塊中?爲什麼在'Do While'循環中'Cells(F,8)<>「」'不會進入? –