1

VBA を使用して生活を楽にしようとしていますが、回避できない問題が発生し続けています。基本的に私が欲しいのは、私が持っているいくつかの出力 csv ファイルからいくつかの値を適切な形式の Excel ファイルにコピーすることです。次に、いくつかの基数に従って、値を削除するか、セルをフォーマットします。
ただし、同じエラー メッセージ Run-time error '1004' application-defined or object defined error が引き続き表示されます。多くの出力ファイルを使用して、同じテーブル ファイルに値を貼り付けますが、シートごとにマクロを使用して、異なるシート (10.2a、10.2b、10.2c、...) に貼り付けています。他のすべてのマクロを含む別のマクロを使用して、すべてのマクロを 1 つのマクロで実行します。他の投稿でよく調べましたが、エラーの原因がわかりません。どんな助けでも大歓迎です。例として、1 つのシートに使用するコードを以下に示します。

Sub Table_10_2a()
        '
        ' Copy Data from one file to another
        '
        Dim Output As Workbook
        Dim Table As Workbook
        Dim i As Integer

        'Open workbooks
        Set Output = Workbooks.Open("O:\...\Output.csv")
        Set Table = Workbooks.Open("O:\...\Table.xlsx") 

        'Copy paste data from output file to Table
        Output.Sheets("Output1").Range("B3:E7").Copy
        Table.Sheets("10.2a").Range("B11").PasteSpecial xlValues

        Output.Sheets("Output1").Range("B9:E13").Copy
        Table.Sheets("10.2a").Range("B17").PasteSpecial xlValues

        Output.Sheets("Output1").Range("B15:E15").Copy
        Table.Sheets("10.2a").Range("B23").PasteSpecial xlValues

        Output.Sheets("Output1").Range("B17:E21").Copy
        Table.Sheets("10.2a").Range("B26").PasteSpecial xlValues

        Output.Sheets("Output1").Range("B23:E27").Copy
        Table.Sheets("10.2a").Range("B32").PasteSpecial xlValues

        Output.Sheets("Output1").Range("B29:E29").Copy
        Table.Sheets("10.2a").Range("B38").PasteSpecial xlValues

        Output.Sheets("Output1").Range("B30:E30").Copy
        Table.Sheets("10.2a").Range("B40").PasteSpecial xlValues

        For i = 2 To 5
        'Delete cells for values below 30
         If Table.Sheets("10.2a").Cells(40, i).Value < 30 Then
            Table.Sheets("10.2a").Range(Cells(26, i), Cells(36, i)).ClearContents
            Table.Sheets("10.2a").Cells(38, i).NumberFormat = """[""0""]"""
            Table.Sheets("10.2a").Cells(40, i).NumberFormat = """[""0""]"""
         End If

    'Format cells for values below 50
        If Table.Sheets("10.2a").Cells(40, i).Value < 50 And Table.Sheets("10.2a").Cells(40, i).Value > 30 Then
            Table.Sheets("10.2a").Range(Cells(26, i), Cells(38, i)).NumberFormat = """[""0.0""]"""
            Table.Sheets("10.2a").Cells(40, i).NumberFormat = """[""0""]"""
        End If

        Next i

        'Save file
            Table.Save

        'Close files
            Output.Close
            Table.Close

        End Sub
4

1 に答える 1