戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
別のブックに貼り付け

    [192068] 別のブックに貼り付け-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ みちこ -(2020/05/23(11:57))
    □U R L/
      貼り付けもとから貼り付け先に値貼り付けをしたくて、下記のようなコードを記載しました。
      
      Sub 値貼り付け1()
      
      Dim i As Long, targetm As Long
      Dim motob As Workbook, sakib As Workbook
      Dim motos1 As Worksheet, motos2 As Worksheet, sakis As Worksheet
      Dim bkpt As String
      bkpt = ThisWorkbook.Path '貼り付け元にマクロを記入し、そのブックを開いた状態で作業するので、このブックのパス
      targetm = InputBox("月数を入力してください")  '貼り付け元のファイル名に月数が入っているため
      Set motob = Workbooks(bkpt & "\◎◎年" & targetm & "月分(××含む).xls*")
      Set sakib = Workbooks(bkpt & "\R2▽市_▽.xls*")
      Set motos1 = motob.Sheets("報告書")
      Set motos2 = motob.Sheets("報告書 (2)")
      Set sakis = sakib.Sheets(StrConv(targetm, vbWide) & "月")  'シート名が全角のため
      
          i = motos1.Range("F7").Value 'その月の日数が入ってる
          sakis.Range(sakis.Cells(11, 3), sakis.Cells(11 + i - 1, 6)) = motos1.Range(motos1.Cells(11, 3), motos1.Cells(11 + i - 1, 6))
          motob.motos2.Active
          sakis.Range(sakis.Cells(11, 12), sakis.Cells(11 + i - 1, 13)) = motos2.Range(motob.motos1.Cells(11, 4), motos1.Cells(11 + i - 1, 5))
          
      End Sub
      
      Set motob の行でインデックスが有効〜というエラーメッセージが出ます。
      bkpt & "\◎◎年" & targetm & "月分(××含む).xls*をファイル名をコピペして変更しても同じエラーメッセージが出ます。
      
      どこがおかしいでしょうか?


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [192069] Re[1]: 別のブックに貼り付け-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/05/23(12:29))
    □U R L/
      >'貼り付け元にマクロを記入し、、そのブックを開いた状態で作業する
      
      なら、こうでは
      
      Set motob =ThisWorkbook
      
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [192071] Re[2]: 別のブックに貼り付け-

    記事引用/メール受信=OFF■

    □投稿者/ チオチモリン -(2020/05/23(12:43))
    □U R L/
      本当に ...〜月分(××含む).xls* というファイルがあるんですか? 




    [192072] Re[3]: 別のブックに貼り付け-

    記事引用/メール受信=OFF■

    □投稿者/ ふふん -(2020/05/23(12:54))
    □U R L/

      願望と妄想で書かれたコードがエラーになりますでは話にならない。

      Sheets("*3").Select

      とかで、簡単に判別できるでしょうが・・・・。




    [192073] Re[4]: 別のブックに貼り付け-

    記事引用/メール受信=OFF■

    □投稿者/ ふふん -(2020/05/23(12:56))
    □U R L/

      加えて、
      Sheets("Sheet*").Select
      の場合どう判断するのかね?




    [192078] Re[5]: 別のブックに貼り付け-

    記事引用/メール受信=OFF■

    □投稿者/ みちこ -(2020/05/23(14:27))
    □U R L/
      マナ さん
      最初は、そうしていたのですが、どうしてもそこでとまるので、変更したのです。
      
      チオチモリンさん
      ありますよ。変数での指定がダメかと思い、
      エクスプローラーでファイル名をコピペしてやっても同じところでエラーが出ます。
      半角全角の問題かと思い、ファイル名を変更したりしても同じでした。
      
      ふふんさん
      「願望と妄想」でというのは、どういうことでしょうか?
      Sheets("*3").Select
      Sheets("Sheet*").Select
      というアドバイスは何行目のご指摘でしょうか?
      
      15行目の「motob.motos2.Active」のことでしたら、別ブックのシートなので、
      敢えてSelectではなくActiveにしています。
      10〜11行目のsetの部分だとすれば、シート番号ではなく、シート名での指定です。
      *3とはどういう意味でしょうか?シート名は変更しておりシート挿入で作成される
      Sheet1等のシート名は存在しません。
      
      ちなみに、
      
      Sub Sample()
          Dim bkpt As String
          bkpt = ThisWorkbook.Path
          If Dir(bkpt & "\R2▽市_▽.xls*") <> "" Then
              MsgBox "ファイルが存在します"
          Else
              MsgBox "ファイルが存在しません"
          End If
      End Sub
      Sub Sample2()
          Dim bkpt As String, targetm As Long
          bkpt = ThisWorkbook.Path
          targetm = InputBox("月数を入力してください")  '貼り付け元のファイル名に月数が入っているため
      
          If Dir(bkpt & "\◎◎年" & targetm & "月分(××含む).xls*") <> "" Then
              MsgBox "ファイルが存在します"
          Else
              MsgBox "ファイルが存在しません"
          End If
      End Sub
      
      
      で判定するとどちらも存在しますになりますので、存在はしています。
      (書き間違いを防止するために、ファイル名は、コピペしてます)
      
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [192079] Re[6]: 別のブックに貼り付け-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/05/23(14:38))
    □U R L/
      Set motob = ThisWorkbook
      Set sakib = Workbooks.Open(bkpt & "\R2▽市_▽.xlsx")
      
      こうです


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [192081] Re[6]: 別のブックに貼り付け-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/05/23(14:44))
    □U R L/
      横から失礼します。
      
      Workbooks(なんたら)
      Worksheets(かんたら)
      のような、なんたら、かんたら部分に
      * といったいわゆるワールドカードの使用はできません。
      
      実在するブックなり、ワークシートなりを直接指定しないと
      「インデックスが有効範囲にありません」というエラーになります。
      
      
      




    [192083] Re[7]: 別のブックに貼り付け-

    記事引用/メール受信=OFF■

    □投稿者/ ふふん -(2020/05/23(15:12))
    □U R L/

      >Sheets("*3").Select
      >Sheets("Sheet*").Select
      >というアドバイスは何行目のご指摘でしょうか?

      はぁ。
      何行目とかでない。
      自分でこうやって試してみれば良い。という意味。
      簡単な方法で使えるのか試してみたりとかしないのでしょうか?

      sub aaa()
      Sheets("*3").Select
      end sub

      sub bbb()
      Sheets("Sheet*").Select
      end sub




    [192084] Re[8]: 別のブックに貼り付け-

    記事引用/メール受信=OFF■

    □投稿者/ チオチモリン -(2020/05/23(15:48))
    □U R L/
      ああ。
      もう一つ Workbooks(○○)は開かれているブックの指定ですので、パスは不要というか、あってはいけないです。
      
      いろいろあるとは思いますが、一つずつクリアしていってください。
      みんな通る道ですから。




    [192089] Re[9]: 別のブックに貼り付け-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ みちこ -(2020/05/23(17:36))
    □U R L/
      Sub 貼り付け()
      
      Dim i As Long
      Dim motob As Workbook, sakib As Workbook
      Dim motos1 As Worksheet, motos2 As Worksheet, sakis As Worksheet
      Dim henkan As String
      Set motob = ThisWorkbook
      Set sakib = Workbooks.Open(ThisWorkbook.Path & "\R2▽市_▽.xls")
      Set motos1 = motob.Sheets("報告書")
      Set motos2 = motob.Sheets("報告書 (2)")
      henkan = StrConv(InputBox("月数を入力してください"), vbWide) & "月"
      Set sakis = sakib.Sheets(henkan)
      
          i = motos1.Range("F7").Value
          motos1.Range(motos1.Cells(11, 3), motos1.Cells(11 + i - 1, 6)).Copy
          sakis.Range("C11").PasteSpecial Paste:=xlPasteValues
          motos2.Range(motos2.Cells(11, 4), motos2.Cells(11 + i - 1, 5)).Copy
          sakis.Range("L11").PasteSpecial Paste:=xlPasteValues
          
      Application.CutCopyMode = False
      Application.DisplayAlerts = True
      End Sub
      
      としたら、うまく動きました。
       γ さん
      ありがとうございました。* といったいわゆるワールドカードの使用はできないんですね。勉強になりました。
      チオチモリンさん
      Workbooks.Open()とWorkbooks()をよくわかっていませんでした。
      どちらにしてもワイルドカートを使用できないので、ファイルは存在しませんというエラーメッセージだったのですね。
      
      ふふんさん
      ワイルドカードが使えるかどうかに.Selectを使用して試したらということですね。
      Workbooks(なんたら)も.Selectもそうですが、ワイルドカードが含まれるファイルってどれやねん!っていう話ですよね。
      γ さんのご指摘でふふんさんのおっしゃることがわかった気がします。(ご指摘の意味が違ったらすいません)
      
      最後の2行(というか3行貼付先=貼付元でコピーするという方法を行ったつもりです)は最後までマクロは行くのですが、何にも反映しないので、コピーに変更しました。
      
      アドバイスくださった皆様、貴重なお時間、ご意見ありがとうございました。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G