• 締切済み

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'アプリケーション定義またはオブジェクト定義エラー] になってしまいます。 原因と対策を教えてください。ご回答よろしくお願いします。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! すでに適切な回答が出ていますので、余計なお世話かもしれませんが・・・ 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)
回答No.1

掲示された絵の通り、「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 などのようにすれば出来ます。

関連するQ&A