データを追加した後、実行するとエラーが出てしまう | |
---|---|
[194768] データを追加した後、実行するとエラーが出てしまう- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ 中村 -(2022/03/08(21:32)) □U R L/ 環境 windows10 excel2019 以前教えてもらったVBAを改変して使用しています。 h ttps://excelfactory.net/excelboard/excelvba/excel.cgi?mode=all&namber=194614&rev=0 データを追加して実行するとエラーが出てしまいます。 この名前は既に使用されています。 ws.Name = "チェックリスト" & nの列が黄色で選択されます。 データを追加してもエラーが出なくなるにはどうやったら良いのでしょうか。 Sub チェックリスト転記() Dim ws As Worksheet Dim i As Long Dim n As Long Dim lastRow As Long For i = 4 To sagyouSH.Cells(Rows.Count, 2).End(xlUp).Row Step 60 chSH.Copy chSH Set ws = ActiveSheet n = n + 1 ws.Name = "チェックリスト" & n ws.Cells(6, 1).Value = (n - 1) * 60 + 1 ws.Cells(2, 6).Resize(2).Value = sagyouSH.Cells(1, 2).Resize(2).Value ws.Cells(6, 1).Resize(60, 6).Value = sagyouSH.Cells(i, 2).Resize(60, 6).Value lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row If lastRow < 65 Then ws.Rows(lastRow + 1 & ":65").Hidden = True Next この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194769] Re[1]: データを追加した後、実行するとエラーが出てしまう- ■記事引用/メール受信=OFF■ □投稿者/ ヘンリー -(2022/03/09(18:01)) □U R L/ >データを追加してもエラーが出なくなるにはどうやったら良いのでしょうか。 問題解決の流れは、現状把握→要因解析→対策立案→実行→検証です。 このうち、現状把握は出来ていますね。 エラーの内容:この名前は既に使用されています。 エラーの場所:ws.Name = "チェックリスト" & nの列が黄色で選択されます。 但し、ws.Name = "チェックリスト" & nの行が黄色くなっている状態というのは、 どのような時になるかご存じですか。 答えは、「ws.Name = "チェックリスト" & nの行を実行しようとした時」です。 という事は、「ws.Name = "チェックリスト" & n」という命令を Excelが実行しようとしたけれど、「この名前は既に使用されています」 という理由で実行できませんでした。という事です。 ここで、「ws.Name = "チェックリスト" & n」は どんなことをExcelにやらせようとしているのでしょうか。 それが分かれば、どの様に直せばよいか見えてくると思います。 |
[194770] Re[2]: データを追加した後、実行するとエラーが出てしまう- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2022/03/09(21:24)) □U R L/ 参考 Sub test() Dim ws As Worksheet Dim wsn As String Dim n As Long Set ws = Worksheets.Add Do n = n + 1 wsn = "チェックリスト" & n If Not Evaluate("isref(" & wsn & "!a1)") Then Exit Do Loop ws.Name = wsn End Sub この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194771] Re[3]: データを追加した後、実行するとエラーが出てしまう- ■記事引用/メール受信=OFF■ □投稿者/ 中村 -(2022/03/13(17:45)) □U R L/ '梱包サイズリスト Dim ws As Worksheet Dim wsn As String Dim i As Long Dim n As Long For i = 15 To Sheet1.Cells(Rows.Count, 1).End(xlUp).Row Step 22 Sheet2.Copy Sheet2 Set ws = ActiveSheet Do n = n + 1 wsn = "梱包サイズリスト" & n If Not Evaluate("isref(" & wsn & "!A1)") Then Exit Do Loop ws.Name = wsn ws.Cells(5, 1).Value = (n - 1) * 22 + 1 ws.Cells(5, 1).Resize(22, 4).Value = Sheet1.Cells(i, 1).Resize(22, 4).Value Next End Sub データを追加してもエラーはでなくなりましたが、シートがどんどん増えるようになってしまいしました。 ステップインで見たところ ws.Cells(5, 1).Value = (n - 1) * 22 + 1 ws.Cells(5, 1).Resize(22, 4).Value = Sheet1.Cells(i, 1).Resize(22, 4).Value がわるさをしているようでした。wsはactivesheetになっているのですが、何に変えれば良いのでしょうか この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194772] Re[4]: データを追加した後、実行するとエラーが出てしまう- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2022/03/13(20:16)) □U R L/ >シートがどんどん増えるようになってしまいしました。 増やすのかと思っていましたが? 期待する動作を箇条書きで説明していただけますか。 |
[194782] Re[5]: データを追加した後、実行するとエラーが出てしまう- ■記事引用/メール受信=OFF■ □投稿者/ 中村 -(2022/03/15(12:00)) □U R L/ sheet1は作業シートになっておりA15:D100までの表があります sheet2はチェックリストの表(A5:D26の範囲)になっています sheet1の表のデータをsheet2の表のコピーに転記したい sheet1のデータは追加されることがあります sheet2の表は22行あるのですがAsheet1の表に23行目のデータが追加された場合、2枚目の表を作ってほしい 上記処理が終わった後 チェックリストのシートを C:\Users\user\Desktop\チェックリスト置き場 にxlsxで保存する ブックを \\server\Files\AAA\BBB\CCC にxlsxで保存する この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194785] Re[6]: データを追加した後、実行するとエラーが出てしまう- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2022/03/17(21:19)) □U R L/ こうでしょうか n = n + 1 wsn = "チェックリスト" & n If Not Evaluate("isref(" & wsn & "!a1)") Then chSH.Copy chSH ActiveSheet.Name = wsn End If Set ws = Worksheets(wsn) この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194786] Re[7]: データを追加した後、実行するとエラーが出てしまう- ■ / 記事引用/メール受信=OFF■ □投稿者/ 中村 -(2022/03/18(14:38)) □U R L/ ありがとうございます 以下のコードで思ったことができました Dim ws As Worksheet Dim wsn As String Dim i As Long Dim n As Long For i = 15 To Sheet1.Cells(Rows.Count, 1).End(xlUp).Row Step 22 Set ws = ActiveSheet n = n + 1 wsn = "梱包サイズリスト" & n If Not Evaluate("isref(" & wsn & "!a1)") Then Sheet2.Copy Sheet2 ActiveSheet.Name = wsn End If Set ws = Worksheets(wsn) ws.Cells(5, 1).Value = (n - 1) * 22 + 1 ws.Cells(5, 1).Resize(22, 4).Value = Sheet1.Cells(i, 1).Resize(22, 4).Value Next この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
このトピックに書きこむ |
---|