私は3つの異なる範囲でマクロを1つずつ実行しようとしています。範囲が選択されると、コードは正常に機能します(変数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はこの 'Sub'と同じモジュールの' TableCalc'コードですか?なぜ 'Do While'ループで' Cell(F、8)<> '"が進まないのですか? –