[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロの実行時エラー1004』(辛太)
マクロを記録し、実行すると『実行時エラー’1004’RaggeクラスのPasteSpecialメソッドが失敗しました。』になります。
再度実行すると流れます。
マクロは、以下の通りです。
形式を選択して貼り付け、値 です。
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
如何すればいいのでしょうか?お教え下さい!!
【Excel2002 WindowsXP です】
どこかのセル(セル範囲)をコピーした後に、
マクロの記録を開始して貼り付ける動作だけ記録したのではないですか?
マクロ実行前にコピーを行っても、クリップボードがクリアされ、
「貼り付けるものがないよ」と注意されているわけです。
記録の最中はクリップボードがクリアされないので、貼付動作だけが記録
できます。
「再度実行すると流れ」るのはなぜかわかりませんが、
セルをコピー、VBE側でコードの実行という手順でやれば動きます。
Selection.Copy
この一文を追加して、コピーする範囲を選択してからこのマクロ実行という
ことではいかがでしょう。
(KAMIYA)
面倒でも、もう一度見てください。宜しくお願い致します。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2004/4/18 ユーザー名 : 辛太'
'
Range("D6:D146").Select
Selection.Copy
Sheets("コピー先").Select
ActiveSheet.Unprotect
Range("A3").Select
*エラーになる箇所
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
*ここまで
Sheets("コピー元").Select
Range("B6:C146").Select
Selection.Copy
Sheets("コピー先").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("コピー元").Select
Range("E6:E146").Select
Selection.Copy
Sheets("コピー先").Select
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("コピー元").Select
Range("F6:G146").Select
Selection.Copy
Sheets("コピー先").Select
Range("F3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("コピー元").Select
Range("H6:I146").Select
Selection.Copy
Sheets("コピー先").Select
Range("I3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2:J143").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("B3") _
, Order2:=xlAscending, Key3:=Range("D3"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal, DataOption3:=xlSortNormal
Range("A1:I1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
ちょっと忙しいので、検証までできないのですが、
Sheets("コピー先").Select
ActiveSheet.Unprotect
Sheets("コピー元").Select
Range("D6:D146").Select
Selection.Copy
Sheets("コピー先").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
このような順番でやるとうまくいきませんか?
ActiveSheet.Unprotect
でカットアンドコピーモードがキャンセルされているからだと思いますが。
(KAMIYA)
行頭に半角スペースがあると改行したとおりに 表示されます。 最初の一行に半角スペースがあれば、 次の空白行まで書き込みしたとおりの レイアウトになるようです。
←半角スペースがなく、↑空白行があると(ここで改行してます)
このように段落分けされ、改行しても連続行になります。
←半角スペース追加で(ここで改行してます) このように改行レイアウトになります。 (KAMIYA)
有難う御座いました。
(辛太)
こんにちは。
お願いしたいですが、
Access VBA で 計算式を除いてエクセルファイルからのデータをコピーしているですが、
oApp.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
その所に「error 1004 Range クラスのPasteSpecial メソッドが失敗しました。」というエラーが発生してきました。
原因を色々探してみましたが、解決できる方法はまだ見つかりませんでした。
もし、解決できる方法があれば、教えていただきたいです。
宜しくお願い致します。
カイ ス ワイン
Dim MyBook As String
Dim oApp As Object
Set oApp = CreateObject("Excel.Application")
'Dim xlRange As Excel.Range
Dim objBook 'ExcelBook
Dim objSheet
oApp.Workbooks.Open FileName:="D:\Khine Su Win\色々テスト\File Copy\売上高集計-中間F.xlsx", _
UpdateLinks:=0
oApp.ActiveWorkbook.Save
oApp.ActiveWindow.Close
'new
'指定のエクセルファイルを開く
oApp.Workbooks.Open FileName:="D:\Khine Su Win\色々テスト\売上高集計-配布用.xlsx"
oApp.Workbooks.Open FileName:="D:\Khine Su Win\色々テスト\File Copy\売上高集計-中間F.xlsx", _
UpdateLinks:=0
'エクセル操作
oApp.Windows("売上高集計-配布用.xlsx").Activate
oApp.Sheets("売上高-出荷").Select
oApp.ActiveSheet.Unprotect
oApp.Windows("売上高集計-中間F.xlsx").Activate
oApp.Sheets("売上高-出荷").Select
oApp.Range("A1:AK614").Select
oApp.Selection.Copy
oApp.Windows("売上高集計-配布用.xlsx").Activate
oApp.Sheets("売上高-出荷").Select
oApp.Range("A1").Select
エラー発生している所
oApp.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
oApp.Windows("売上高集計-中間F.xlsx").Activate
oApp.Sheets("売上高-出荷").Select
oApp.Range("A1:AK614").Select
oApp.Application.CutCopyMode = False
oApp.Selection.Copy
oApp.Windows("売上高集計-配布用.xlsx").Activate
oApp.Sheets("売上-受注").Select
oApp.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
oApp.Range("A1").Select
oApp.Sheets("売上高-出荷").Select
oApp.Range("A1").Select
oApp.Application.CutCopyMode = False
oApp.ActiveWorkbook.Save
oApp.ActiveWindow.Close
oApp.Sheets("売上高-出荷").Select
oApp.Range("A1").Select
oApp.ActiveWorkbook.Save
oApp.ActiveWindow.Close
'?Aエクセルを終了します
oApp.Quit
(カイ) 2015/05/15(金) 16:31
なぜ他人の質問につけているのかわからないが。
気になったところだけ。 (これで問題が解決するかは不明)
モジュールの先頭に Option Explicit を付けてデバッグ-コンパイルを行うとxlNoneがエラーにならないか?
「xlNone」はExcelで定義されている定数なのでAccessでは定義されていないと思うが。
こちらで確認すると「xlNone」は「-4142」のようなので Operation:=xlNone 部分を Operation:=-4142 としてはどうだろうか? (ねむねむ) 2015/05/15(金) 16:53
でもって、Excelの定数関連を使うならば、参照設定で「Microsoft Excel x.x Object Library」をチェックしてみては?
(???) 2015/05/15(金) 17:11
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.