電子書籍の厳選無料作品が豊富!

B列を縦に動かしてループをさせたく、
以下のようなwithを書きたいのですが、
エラーになります。

with range("B" & n)
※nを増やしていきたいのです。

withには可変となるようなモノは使えないのでしょうか。
とすると、どのように対処すれば宜しいでしょうか。

宜しくご指導ください。

A 回答 (3件)

こんにちは


変数nが0などなのでは?
エラーの内容を書きましょう・・
Sub huga()
Dim n As Integer
For n = 1 To 10
With Range("B" & n)
.Value = .Offset(, 2).Value
End With
Next
End Sub

D列の値がB列同じ行に入ります
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
出来ました。
サンプルを見せて頂き分かりました。
原因は、
for n = 1 to 10がwithの中に入っていたためです。
このため、withの時点でnが決まっていなかったからでしょう。
>変数nが0などなのでは?
ご指摘のとおりでした。
お世話になりました。

お礼日時:2022/12/18 18:05

それは出来ません。



withは「主語を省略しますよ」と言う意味だからです。

Range("B" & n)の主語は、例えばSheets("Sheet2")の場合です。
Sheets("Sheet2").Range("B" & n)
Sheets("Sheet2").Range("C" & n)
Sheets("Sheet2").Range("D" & n)
の時、主語がSheets("Sheet2")だから、それを省略です。

With Sheets("Sheet2")
.Range("B" & n)
.Range("C" & n)
.Range("D" & n)
と書くわけです。

Range("A1")を主語にするなら、
With Range("A1")
.Value = "tanaka"
.Interior.ColorIndex = 3
.Font.ColorIndex = 2
の様に書きます。

●●●本題
range("B" & n)の主語が要ります。
主語は、どのシートなの?です。
Sheets("Sheet1").Range("B" & n)=xxxxx
の様な書き方になります。
    • good
    • 0

使えません

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!