- 締切済み
VBAでオートフィルができません
エクセル2007です。 画像のようにA列に値を入れて、B列に半角にする関数を入れて、最終行までオートフィルをしたいのですが、 --------------------------------------------------------- Sub test() Dim 最終行 As Long 最終行 = Cells(65536, 1).End(xlUp).Row ActiveCell.FormulaR1C1 = "=ASC(RC[-1])" Selection.AutoFill Destination:=Range("b1:b" & 最終行), Type:=xlFillDefault End Sub --------------------------------------------------------- をすると、 Selection.AutoFill Destination:=Range("b1:b" & 最終行), Type:=xlFillDefault の部分で、 [実行時エラー'1004'アプリケーション定義またはオブジェクト定義エラー] になってしまいます。 原因と対策を教えてください。ご回答よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに適切な回答が出ていますので、余計なお世話かもしれませんが・・・ B2セル以降に数式を入れたい訳ですよね? オートフィルではありませんけど、 Sub test() Dim i As Long i = Cells(Rows.Count, 1).End(xlUp).Row Range(Cells(2, 2), Cells(i, 2)).Formula = "=ASC(A2)" End Sub こんな感じではどうでしょうか?m(_ _)m
- keithin
- ベストアンサー率66% (5278/7941)
掲示された絵の通り、「B2を選択した状態」から開始して、「B1から最下行まで」オートフィルしたいのですか? もしもホントにそれが正しい意図なのでしたら、マクロは次のようになります。 sub macro1() dim r as long r = range("A65536").end(xlup).row activecell.formular1c1 = "=ASC(RC[-1])" range(range("B1"), selection).autofill destination:=range("B1:B" & r) end sub それともオートフィルさせたい対象範囲の方が実は間違っているなら、 sub macro2() dim r as long r = range("A65536").end(xlup).row activecell.formular1c1 = "=ASC(RC[-1])" activecell.autofill destination:=range(activecell, cells(r, "B")) end sub のようになります。 その場合実際には、わざわざオートフィルを使わなくても sub macro2() dim r as long r = range("A65536").end(xlup).row range(activecell, cells(r, "B")).formular1c1 = "=ASC(RC[-1])" end sub などのようにすれば出来ます。