A9がJ9以上に成った時、先に開いたブックの指定シート・セルに転記させたい | |
---|---|
[194868] A9がJ9以上に成った時、先に開いたブックの指定シート・セルに転記させたい- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ ぎゅう -(2022/05/05(11:48)) □U R L/ 初心者です。 希望は、A9がJ9以上に成った時、先に開いたブックの指定シート・セルに転記させたい。 以下の様に書きました。 Sub 指定したシートとセル領域にデータ転記() If Worksheets("Sheet3").Range("A9").Value >= Worksheets("Sheet3").Range("J9").Value Then Dim ws1 As Worksheet Dim ws2 As Worksheet Dim 受ws As Worksheet Dim 最終行の下A Dim 受最終行下B Set ws3 = Worksheets("Sheet3") Set ws2 = Worksheets("Sheet2") Set 受wb = Workbook.Workbooks(1).Worksheets("Sheet7") 最終行の下A = ws2.Cells(Rows.Count, "A").End(xlUp).Row + 1 ws2.Range("A" & 最終行の下A).Value = ws3.Range("J12").Value 'F5押すと転記出来た 受最終行下B = 受wb.Cells(Rows.Count, "B").End(xlUp).Row + 1 受wb.Range("B" & 受最終行下B).Value = ws3.Range("J12").Value End If End Sub このWorkbook.Workbooks(1).Worksheets("Sheet7")で、先に開いたワークブックのSheet7の B列の最終行の下空白行へ転記する意図で作った F5を押すと、「オブジェクトが必要です」ダイアログ出現 先に開くワークブックは、ファイル名を用いずに実行したかったので、オブジェクト.Workbooks(index)で参照できると本に有り、 Workbook.Workbooks(1)としました。 この同じ階層に置いた、先に開いたワークブックのSheet7のB列の最終行の下空白行へ転記したい。 それから、Sheet3のC75セル(J9の値をA9が=と成るセル)に入力してEnterを押しても 転記処理(転記出来ていたVBAを記述しているこのブック内のSheet2のA列の最終行の下空白行へ転記)もされなくなった。 今回は、条件を満たした時のテストの爲、Sheet3のC75セルに手入力しましたが、 本来は、ネットを介して自動的でC列にデータが最終行の下空白行へ転記されます。 どうか、解決方法をお教えください。 Excelは2013 OSはWindows10 です。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 ++++++++++++++++++++ OS ⇒OTHER Version⇒OTHER ++++++++++++++++++++ |
[194869] Re[1]: A9がJ9以上に成った時、先に開いたブックの指定シート・セルに転記させたい- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2022/05/05(15:52)) □U R L/ >このWorkbook.Workbooks(1).Worksheets("Sheet7") 単に、Workbooks(1).Worksheets("Sheet7") でやってみてください。 >Set ws3 = Worksheets("Sheet3") >Set ws2 = Worksheets("Sheet2") 間違いの元なので、どのWorkbookかチャンと修飾してみてください。 例: Set ws3 = ThisWorkbook.Worksheets("Sheet3") |
[194871] Re[2]: A9がJ9以上に成った時、先に開いたブックの指定シート・セルに転記させたい- ■記事引用/メール受信=OFF■ □投稿者/ ぎゅう -(2022/05/05(21:38)) □U R L/ 有難うご座います。早速お教えの如く Set 受wb = Workbooks(1).Worksheets("Sheet7") Set ws3 = ThisWorkbook.Worksheets("Sheet3") Set ws2 = ThisWorkbook.Worksheets("Sheet2") とし、F5を押すと、「インデックスが有効範囲に有りません」とダイアログが出現致しました。 因みに 'Dim 受ws As Worksheet 'Set 受wb = Workbooks(1).Worksheets("Sheet7") '受最終行下B = 受wb.Cells(Rows.Count, "B").End(xlUp).Row + 1 '受wb.Range("B" & 受最終行下B).Value = ws3.Range("J12").Value と「'」を付してF5を押すと、同じブック内のSheet2のA列最終行の下空白行へ転記されました。 既に実現している「データ取込、同じブック内のSheet3のA列への最終行の下空白行へ転記 を書いた時から現在も、VBAのSheet3(コード)という名前の所で記述して居ります。 これが問題なのかどうかは分かりませんが、ご報告致します。 度々、申し訳ございません。 宜しくご教授くださいませ。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 ++++++++++++++++++++ OS ⇒OTHER Version⇒OTHER ++++++++++++++++++++ |
[194872] Re[3]: A9がJ9以上に成った時、先に開いたブックの指定シート・セルに転記させたい- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2022/05/05(23:10)) □U R L/ 申し訳ないですが、そちらの状況が分からないので、参考になることを書いただけです。 ブックは全部で幾つ関係しているんですか? 3つですか? (転記元、先に開いたブック、マクロを書いたブック) マクロブックは、いつ開いたんですか?(先に開いたブックより後ですか?) ブックとシートの関係を示してください。 Sheet2→? Sheet3→? Sheet7→先に開いたブック |
[194873] Re[4]: A9がJ9以上に成った時、先に開いたブックの指定シート・セルに転記させたい- ■記事引用/メール受信=OFF■ □投稿者/ ぎゅう -(2022/05/05(23:38)) □U R L/ 半平太様 有難うご座います。 先に開いたブックSheet7で、転記を受けるブックに成ります。 同じ階層内で、後で開いたブックのSheet3がメインで、Sheet2がSheet3から転記される同じブック内でのシートです。 ファイルは、この二つだけです。 マクロを書いているのは、後から開いたブックです。 VBAのSheet3(コード)とは、標準モジュールではなく、Sheet3(Sheet3)をダブルクリックで開いたウィンドで、ここにVBAを記述していますという意味で、ご報告致した次第です。 混乱させるようなことになり、申し訳ございませんでした。 宜しく、お願い申し上げます。 |
[194874] Re[5]: A9がJ9以上に成った時、先に開いたブックの指定シート・セルに転記させたい- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2022/05/05(23:56)) □U R L/ >標準モジュールではなく、Sheet3(Sheet3)をダブルクリックで開いたウィンドで、ここにVBAを記述しています ならば、ブックで修飾する必要はないです。 Sub 指定したシートとセル領域にデータ転記() If Worksheets("Sheet3").Range("A9").Value >= Worksheets("Sheet3").Range("J9").Value Then Dim ws1 As Worksheet Dim ws2 As Worksheet Dim ws3 As Worksheet Dim 受ws As Worksheet Dim 最終行の下A Dim 受最終行下B Set ws3 = Worksheets("Sheet3") Set ws2 = Worksheets("Sheet2") Set 受ws = Workbooks(1).Worksheets("Sheet7") 最終行の下A = ws2.Cells(Rows.Count, "A").End(xlUp).Row + 1 ws2.Range("A" & 最終行の下A).Value = ws3.Range("J12").Value 'F5押すと転記出来た 受最終行下B = 受ws.Cells(Rows.Count, "B").End(xlUp).Row + 1 受ws.Range("B" & 受最終行下B).Value = ws3.Range("J12").Value End If End Sub |
[194875] Re[6]: A9がJ9以上に成った時、先に開いたブックの指定シート・セルに転記させたい- ■記事引用/メール受信=OFF■ □投稿者/ ぎゅう -(2022/05/06(00:29)) □U R L/ 半平太様 夜分にお教え賜り有難うご座いました。 お教えの通りにし、F5で実行致しました処 「インデックスが有効範囲に有りません」とダイアログが出現致しました。 私の入力ミスかと思い、コピー&ペーストして再びF5で試してみました。 結果は、「インデックスが有効範囲に有りません」とダイアログが出現致しました。 度々、申し訳ございませんが、宜しくご教授下さいませ。 有難うご座います。 |
[194876] Re[7]: A9がJ9以上に成った時、先に開いたブックの指定シート・セルに転記させたい- ■ / 記事引用/メール受信=OFF■ □投稿者/ ぎゅう -(2022/05/06(12:35)) □U R L/ 半平太様 その後の検証をご報告申し上げます。 Workbooks(1)をWorkbooks("受転記のブック.xlsx")に変更して、 F8でステップインして行き、この行が「黄色」に成って次に進む為にF8を押すと Workbooks(1)時と同様に「実行時エラー9、インデックスが有効範囲に有りません」のダイアログが出現 今迄と変わらず。 Worksheets("Sheet7")をWorksheets("計算")に変更 先に開いた転記を受けるブックのVBA画面で左上側のウィンドに表示されている Microsoft Excel Objectsの下層Sheet7(計算)と成っていたので、 試しにSet 受ws = Workbooks("受転記のブック.xlsx").Worksheets("計算")としてF8を実行 ダイアログが出現せず、無事に転記されました。 私の思い込みで、Sheet7(計算)の個所に意識が及ばす 最初から、計算はその後名前が変わったりするが、Sheet7は名前が変わらない様なので VBAでは、名前の変わらないSheet7を使うものだと思い込んでおりました。 この度は、大変ご迷惑をお掛け致しまして、申し訳ございません。 私にとっては、半平太様のご教授により、Worksheets("計算")への変更を考えることが出来ました。 この度は、いろいろお世話に成り、有難うご座いました。 再び、自力解決できない時にはお世話に成りますが、その折には宜しくお願い申し上げます。 では、失礼致します。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
このトピックに書きこむ |
---|