[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルを指定する式の書き方』(ひろ)
Sh1⇒Sh2へ転記をさせたく、1行づつ下に読み取りたくて下記式を作成しました。
Worksheets("Sh2").Range...の行でエラーになります。
行の指定の仕方("2 +i,9)が間違っているのでしょうか?スペースなど..
Sub Test22()
Dim i As Long Dim Sh1 As Worksheet 'Sh1はSheet1を表す Dim Sh2 As Worksheet 'Sh2はSheet2を表す Set Sh1 = Worksheets("Sheet1") Set Sh2 = Worksheets("Sheet2")
For i = 1 To 8 '8回繰り返し処理
Worksheets("Sh2").Range("2 +i,9").Value = Worksheets("Sh1").Range("8 +i,2").Value '転記先へコピー
Next
End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
場所は違うかもしれませんが。。Cellsという書き方もあります。。。 >Worksheets("Sh2").Range("2 +i,9").Value = Worksheets("Sh1").Range("8 +i,2").Value '転記先へコピー
Worksheets("Sh2").Cells(2 + i, 9).Value = Worksheets("Sh1").Cells(8 + i, 2).Value '転記先へコピー (SoulMan) 2020/05/09(土) 21:32
コメントありがとうございます。
Range⇒Cellsに変更してみたのですが、【インデックスが有効範囲にありません】と、表示されてしまいます。。
※Rangeの場合も同じエラーがでます。
(ひろ) 2020/05/09(土) 21:37
読んで、字のごとく
変数 Sh2 には、Worksheets("Sheet2") がセットされているから、(Sh1も同じ)
Sh2.Range・・・・ (BJ) 2020/05/09(土) 21:37
ご指摘の通り修正したらできました。
ありがとうございました!!!
初心者なので探り探りで大変ですが、助かりました。。。
(ひろ) 2020/05/09(土) 21:43
あっ、、すみません。。。ついでに↓こんな書き方もあります。。 Sh2.Cells(2 + i, "I").Value = Sh1.Cells(8 + i, "B").Value '転記先へコピー (SoulMan) 2020/05/09(土) 21:46
追加でご質問なのですが、
Sh2のほうは、I3,I4..と1つずつセルを下げていきたく、
Sh1のほうは、B9、B11,,と、2つずつセルを飛ばして読み取りたいのですが。
どうすればよいでしょうか?
(ひろ) 2020/05/09(土) 22:38
>どうすればよいでしょうか?
Sub Test() Dim i As Long Dim Sh1 As Worksheet 'Sh1はSheet1を表す Dim Sh2 As Worksheet 'Sh2はSheet2を表す
Set Sh1 = Worksheets("Sheet1") Set Sh2 = Worksheets("Sheet2") For i = 1 To 8 '8回繰り返し処理 Sh2.Cells(i + 2, 9).Value = Sh1.Cells(i * 2 + 7, 2) Next End Sub
(ピンク) 2020/05/09(土) 23:01
Rangeを使うのなら
For i = 1 To 8 '8回繰り返し処理 Sh2.Range("I" & i + 2).Value = Sh1.Range("B" & i * 2 + 7).Value Next
(ピンク) 2020/05/09(土) 23:05
無事動きました!
ありがとうございます。
Range と Cellsの違いって何でしょうか?
(ひろ) 2020/05/09(土) 23:08
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.