お疲れ様です。
下記コードをご覧いただけますでしょうか。
VBA
1Sub HogeMethd() 2 Dim S11 As WorkSheet 3 sheet11.Activate 4 Set S11.ActiveSheet 5 6 Dim Idx As Integer 7 Dim CountResult As Integer 8 Dim Range1 As String 9 Dim Range2 As String 10 11 For iIdx = 1 To 500 12 Range1 = Cells(iIdx + 4, 17).Address(RowAbsolute:=False, ColumnAbsolute:=False) 13 Range2 = Cells(iIdx + 4, 117).Address(RowAbsolute:=False, ColumnAbsolute:=False) 14 'CountResult = Application.WorksheetFunction.CountA(S11.Range("""Range1:Range2""")) 15 'Debug.Print (CountResult) 16 Debug.Print (Range1) 17 Debug.Print (Range2) 18 19 Next 20End Sub
今のところ、CountResultの行はコメントアウトしていますが、
一回目のループで、
Range1はQ5
Range2はDM5と表示されます。
やりたいのはApplication.WorksheetFunction.CountA(S11.Range("Q5:DM5"))で取得できる数値をCountResultに入れたいのですが、
Range1,Range2はともに変数であるため、
Application.WorksheetFunction.CountA(S11.Range("Range1:Range2"))という書き方ではCountAの結果取得はできないことはわかっています。
そこで"のエスケープについて調べ、S11.Range("""Range1:Range2""")としたのですが、
これでも上手くいかないようでした。
また別途、解決策として以下があげられるのですが、こちらも実装方法がわかりません。
1.Cellsで範囲参照を行いRangeを使用せずCountAする。
よろしくお願いいたします。
追記
質問してから、Range(Cells(iIdx + 4, 17),Cells(iIdx + 4, 117)).Select)で行ける気がしてきたので、
試してみます。
追記2
↑上手くいきませんでした。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。