こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excel VBA CHAR( ) でエラーになる

Excel VBA でマクロ処理を作成してます。
現在エラー直らず困っています。

処理は内容は以下になります。
セルを指定 →『Q11』選択
offset() で+1して列を右に1個移動
で、選択したセルには今計算式が入っているが…
その計算式を修正する
修正前  修正後
Q11/3 → Q11
オートフィルでセルの最下位まで確定させる
その後,列を右に3コ移動して (offset関数を使用して移動してます)
後はfor文で繰り返せ… 

といった処理で,以下がソースになります。
Sub test()
Dim str As String
n = 1
For i = 1 To 2
Range("Q11").Select.Offset(, n).Select
▲ActiveCell.FormulaR1C1 = "=RC[123]"
★str = CHAR(CODE("Q") + n)
Selection.AutoFill Destination:=Range(str & "11:" & str & "160")
n = n + 3
Next
End Sub

★マークで現在エラーになっている様です。
関数の使用方法が間違っているのか? エラーが直らず困っています。
▲マークもあまりよくない記述かもしれませんが…試しマクロで作成してコピーしただけのものなので…この辺りもよい記述があればご教授ください。
アドバイス宜しくお願いします。

投稿日時 - 2005-06-27 01:08:02

QNo.1475596

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

通常は、以下のようなコードになるのではないでしょうか?

>▲マークもあまりよくない記述かもしれませんが
そんなことはありません。式に関しては、R1C1方式で良いです。

Sub test2()
Dim i As Long
For i = 0 To 1
 Range("R11:R160").Offset(, i * 3).FormulaR1C1 = "=RC[123]"
Next
End Sub

投稿日時 - 2005-06-27 09:52:40

ANo.1

str = CHAR(CODE("Q") + n)
は、
多分、
str = CHR(ASC("Q") + n)
だと思います。

Range("Q11").Select.Offset(, n).Select
は、
Range("Q11").Offset(, n).Select
でいいか、または、次の行も含めて
Range("Q11").Offset(, n).FormulaR1C1="=RC[123]"
でいいと思います

投稿日時 - 2005-06-27 02:37:32

あなたにオススメの質問