アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル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'アプリケーション定義またはオブジェクト定義エラー]
になってしまいます。

原因と対策を教えてください。ご回答よろしくお願いします。

「VBAでオートフィルができません」の質問画像

A 回答 (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
    • good
    • 0

掲示された絵の通り、「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

などのようにすれば出来ます。
    • good
    • 0

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