• ベストアンサー

.copy に、Rangeではなく Cells を使えませんか?

chibita_papaの回答

  • ベストアンサー
回答No.3

ただ、RANGEで括るだけでは動きませんので Dim ws As Worksheet Dim ws2 As Worksheet Set ws = Workbooks(MyFName).Worksheets("部品表") Set ws2 = Workbooks(MyFName2).Worksheets("PartsList") ws.Range(ws.Cells(j * 17 - 11, 2), ws.Cells(j * 17 - 11, 2)).Copy _ ws2.Range(ws2.Cells(k * 39 - 37, 2), ws2.Cells(k * 39 - 37, 2)) Set ws = Nothing Set ws2 = Nothing 又は、 Workbooks(MyFName).Worksheets("部品表").Range("B" & j * 17 - 11).Copy _ Workbooks(MyFName2).Worksheets("PartsList").Range("B" & k * 39 - 37) でも動きます。 こちらの方が余り変更がなくて済みます。

dengennao
質問者

お礼

変数を確認したところ、エラー箇所がわかりました 上記のやりかた、大変勉強になりました ありがとうございました

dengennao
質問者

補足

Workbooks(MyFName).Worksheets("部品表").Range("B" & j * 17 - 11).Copy _ Workbooks(MyFName2).Worksheets("PartsList").Range("B" & k * 39 - 37) をやってみましたが、やはりだめでした…。 変数のせいなのでしょうか。 変数を見直してみます

関連するQ&A

  • .copy で値だけの貼付け方法を教えてください

    セル結合してある備考欄の値を、別のブックのセルに貼り付けます。 貼り付けるブックのセルには罫線があるので、これを消さずに、値だけ貼り付けたいです。 Workbooks(MyFName).Worksheets("部品表").Range("P" & j + 5).Copy Workbooks(MyFName2).Worksheets("PartsList").Range("M" & k + 1) とすると、罫線が消えてしまうので おしりに .PasteSpecial Paste:=xlValues を付けてみましたら、赤く反転しエラーになってしまいました。 どうしたら、.copyで値のコピー貼付けができますか どうかご指導ください

  • VBA ブック間のコピー

    2つのブック(どちらも変数ですが、MyFNameとMyFName2)を開いています。 このブック間で、データをコピー貼付けしたいのです 貼付け先は、セル結合しているので、セルを2つ選択してみました Workbooks(MyFName).Activate 'Worksheets("部品表").Activate Range("D4").Select Selection.Copy Workbooks(MyFName2).Activate Range("F37:G37").Select でも、貼付け先のセルがアクティブにはなっていますが、データが貼り付けられていませんでした。 ちなみに、2008年00月00日のデータ貼付け作業です どうかご指導ください

  • WorkbookのCopyについて

    Workbookのコピーについて教えてください。 下記のマクロにセル内の数式もコピーしたいのですが、出来ないで困ってます。 値と数式をコピーする、マクロを入れると指定した範囲にコピーされません。 Sub CopyWorkbookToWorkbook() Windows("sheet2.xls").Activate Workbooks.Open Filename:="D:\book1.xls" Workbooks("book1.xls").Worksheets("sheet1").Range("A6:k1000").Copy Workbooks("book2.xls").Worksheets("sheet1").Range("A6").PasteSpecial    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False,Transpose:=False          Workbooks("book1.xls").Close End Sub よろしくお願いします。

  • Excel2003 Range("XXX").Copyについて

    下記のようにコピペをしたいのですが ActiveSheet.Paste Sheets("sheets1").Range("V3").Copy Worksheets("sheets2").Activate Sheets("sheets2").Range "A1").Select 上の方法だと良く行くのですが下記だとSheets("sheets1").Cells(9,16).Copyエラーになってしまします。どうしてもCells(9,16) を使いたいのですが方法を教えてください。 ActiveSheet.Paste Sheets("sheets1").cells(9,16).Copy Worksheets("sheets2").Activate Sheets("sheets2").Range "A1").Select よろしくお願いします。

  • VBAの貼り付け機能で質問させていただきます。

    VBAの貼り付け機能で質問させていただきます。 あるブックのシート全体の内容をコピーして、 別のブックに貼り付ける処理を作成していますが、 コピー元のシートにある画像だけが貼り付けされずに困っています。 ホームページで探してやってみましたが、どれもうまくいきませんでした。 ご存じの方がいましたら、助言をお願いします。 下の記述で画像以外は貼り付けできています。 Sub 貼り付け() Worksheets("コピー元シート").Select Cells.Select Selection.Copy Workbooks.Open Filename:="C:¥コピー先.xls" Workbooks("コピー先.xls").Activate Worksheets("コピー先シート").Select Cells.Select Selection.PasteSpecial Paste:=xlPasteAll, _ Operation:=xlNone, SkipBlanks:= False, _ Transpose:=False End Sub

  • VBAについてです。

    VBAについてです。 当方VBA初心者です。初歩的な質問があり投稿しました。 Workbooks("aaaa.xlsx").Worksheets("aaa").Range("A3:A50").Copy _ Workbooks("bbbb.xlsx").Worksheets("bbb").Range("A2") というコピーはできるのに Workbooks("aaaa.xlsx").Worksheets("aaa").Range(cells(3, 1), cells(50, 1)).Copy _ Workbooks("bbbb.xlsx").Worksheets("bbb").Range("A2") というコピーはどうしてできないのでしょうか? また、最下行を判別して Workbooks("aaaa.xlsx").Worksheets("aaa").Range(cells(3, 1), cells(最下行, 1)).Copy _ Workbooks("bbbb.xlsx").Worksheets("bbb").Range("A2") という様に簡単に処理したいのですが、やはり無理なのでしょうか? ブックが違うのですが、これをなんとかこのような処理にしたいと思っています。

  • エクセルVBAで他のbookのセルcellsで参照

    エクセルVBAで他のbookのセルの値(一定の範囲)を参照したいのですが、変数を使いたいため、cellsを使用したいのですがうまくいきません。方法はないでしょうか。 下記に例を示します。 rangeを使用すればすべてok((2)(5))(この場合はset文を使用しなくてもok(5))。同じbookならcells使用ok(4)。 他のbookをcells文使用する方法はないでしょうか(もちろんできれば、Thisbookの方もcellsを使用したい)。 よろしくお願いします。 sub test() Dim ThisBook As Workbook Dim Workbook2 As Workbook 'マクロを実行しているワークブック Set ThisBook = ThisWorkbook '他のワークブック Set Workbook2 = Workbooks("test11.xlsx") ' 'ThisBook.Worksheets(1).Range("A1:B2").Value = Workbook2.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value  '(1)だめ 'ThisBook.Worksheets(1).Range("A1:B2").Value = Workbook2.Worksheets(1).Range("a1:b2").Value '(2) OK 'Workbooks("test1.xlsm").Worksheets(1).Range("A1:B2").Value = Workbooks("test11.xlsx").Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value '(3) だめ 'Workbooks("test1.xlsm").Worksheets(1).Range("A1:B2").Value = Workbooks("test1.xlsm").Worksheets(1).Range(Cells(3, 3), Cells(4, 4)).Value  '(4)だめ 'Workbooks("test1.xlsm").Worksheets(1).Range("A1:ii8000").Value = Workbooks("test11.xlsx").Worksheets(1).Range("a1:ii8000").Value  '(5) ok End Sub

  • エクセルのシートのコピーについて

    シートのコピーをVBAで行いたいのですが、エラーになってしまいます。 間違っている箇所が分からないのでご教授お願いします。 貼り付けというブックにマクロが組まれています。 ”データ”のブックにあるシート名が”貼り付けのブックのリスト”のシートに記載されています。 リストのシートに記載されているシートを貼り付けのブックにコピーしたいです。 よろしくお願いします。 Sub シートコピー() 行数 = 2 Do Until IsEmpty(Cells(行数, 3).Value) コピー元 = Workbooks("貼り付け.xls").Worksheet("リスト").Cells(行数, 3) Workbooks("データ.xls").Worksheet(コピー元).Copy After:=Workbooks("貼り付け.xls").Sheets(Workbooks("貼り付け.xls").Sheets.Count) 行数 = 行数 + 1 Loop End Sub

  • エクセルVBA!(COPY) Win2000,offce2000

    単純な質問かもしれませんが、 WorkBooks("test")から 別のWorkBooks("Data").WorkSheets("Sheet1")のデータの数を判定して全てをコピーして、 WorkBooks("test")のWorkSheets("Sheet2")へペーストしたいのですが、うまくいきません ↓のような感じです。 Dim wstest As Worksheet Dim wsData As Worksheet Dim wsNM As String Dim Drow As Long Sub copy() 'DataSheetのSheet名がその都度違うので、取得しました。 wsNM = wsData.Sheets(1).Name Set wsData = Workbooks("Data.xls").Worksheets(wsNM) Set wsTest = Workbooks("Test.xls").WorkSheets("Sheet2") 'データの範囲判定 Drow = wsData.Range("H65536").End(xlUp).Row '/////// ここからが???です /////// wsDataのA1からBAのDrowを範囲を指定して、Copy → wsTestのA1に貼り付けたいのですが、どうしたらよいのでしょうか? コピーしたり、直接書くようにしたりといろいろなコードを書いてみましたがダメでした。 Cellsで範囲をとる方法がわかりません。Rangeなら(A1:BA300)のように取れる範囲もCellsの時はどうしたらよいのでしょうか?(そのまま書けば、Cells(1,1):Cells(Drow,53)みたいな・・・・・) と、悩んでいるより一気にコピーするのもどうかと思いFor~Nextで1行ずつ書いていったらどうかとも考えましたが、うまくいきませんでした。 End Sub ※ Drowは、6000~20000 よろしくお願いします。

  • シートを別のブックに複数自動コピー

    初質問です。よろしくお願いします。 マクロを使って、あるブックのシート(20から50枚程度)を、別の貼り付け先のブックに自動的にコピーしようとすると、10回をすぎたあたり(必ずしも一定せず)で 「実行時エラー'1004': WorksheetクラスのCopyメソッドが失敗しました。」 というエラーと共にマクロが止まり、デバッグしようとすると 「ActiveSheet.Copy After:=Workbooks("貼り付け先ブック.xls").Sheets("○○シート")」 のところで止まっています。 マクロの記述内容は以下の通りです。 Sheets("貼り付け元シート").Activate ActiveSheet.Copy After:=Workbooks("貼り付け先ブック.xls").Sheets("○○シート") Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False Range("A1").Select Windows("貼り付け元ブック.xls").Activate ・・・以下貼り付け元シートを変えつつ複数回繰り返し これができる様になれば非常にラクになるので、ぜひご教授願います。