3

私はあなたの助けを借りて初めてマクロを作成しました.Cyber​​queryレポートからの実際のソースファイルとそこにある唯一のオプション.XLSでテストするまではうまくいきました.Excel 2010でソースファイルを開くと、互換モードとマクロで開きます「アプリケーション - 定義またはオブジェクト定義のエラー」というメッセージが表示されます。これを機能させるにはどうすればよいですか?

 .Range("A2", .Cells(.Cells(Rows.Count, "A").End(xlUp).Row, .Cells(1, Columns.Count).End(xlToLeft).Column)).SpecialCells(xlCellTypeVisible).Copy

マイ マクロ 互換モードで開くソース ワークブックからデータをコピーし、マクロを含むメインのターゲット ワークブックに貼り付けます。データが貼り付けられた後、ソース ワークブックを閉じます。マクロはこちら

    Function GetSalesOrderWb() As Excel.Workbook
    Dim wb As Excel.Workbook

  For Each wb In Application.Workbooks
   If Left(wb.Name, 10) = "SalesOrder" Then
     Set GetSalesOrderWb = wb
      Exit Function
   End If
  Next
End Function

Private Sub CommandButton1_Click()
 Dim wsSource As Worksheet
 Dim wsTarget As Worksheet
 Dim wsTool As Worksheet
 Dim wBook As Workbook   


Set wBook = GetSalesOrderWb
  If wBook Is Nothing Then
   MsgBox "Please open SaleOrderRMTOOL file"
   Exit Sub
  End If

Set wsSource = GetSalesOrderWb.Sheets("SalesOrderRMTOOL") 

Set wsTarget = Workbooks("RMORDERTOOL.xlsm").Sheets("Sales Order")

 Application.ScreenUpdating = False

Workbooks("RMORDERTOOL.xlsm").Sheets("Tool").Range("i7:i1003").Value = ""
Workbooks("RMORDERTOOL.xlsm").Sheets("Tool").Range("l7:l1003").Value = ""
Workbooks("RMORDERTOOL.xlsm").Sheets("Tool").Range("o7:o1003").Value = ""

wsTarget.Cells.Clear

' Copy header row to Target sheet if target is empty
If IsEmpty(wsTarget.Range("A1")) Then wsSource.Rows(1).Copy Destination:=wsTarget.Range("A1")

' Define visible filterd cells on source worksheet and copy

With wsSource
    .Range("A2", .Cells(.Cells(Rows.Count, "A").End(xlUp).Row, .Cells(1, Columns.Count).End(xlToLeft).Column)).SpecialCells(xlCellTypeVisible).Copy**
End With

' Paste to target sheet
wsTarget.Cells(Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, False, False


Application.CutCopyMode = True
Application.ScreenUpdating = True

GetSalesOrderWb.Close 0  


End Sub
4

0 に答える 0