繁体   English   中英

从一个工作簿复制到另一个工作簿中的特定工作表

[英]Copy from one workbook to specific sheet in another workbook

我想创建一个需要取出 3 个不同报告的脚本。 需要将报告中的信息复制到运行脚本的主文件“Workingfile.xlsm”中的特定工作表中。 第 2 次报告基于从第 1 次报告中提取的数据,第 3 次报告基于从第 2 次报告中提取的日期。

以下是第一次尝试保存为 export.xlsx 并打开文件的第一个报告。

在此之后执行的步骤需要是:

  1. 删除主文件“Workingfile.xlsm”中特定工作表“EKKO”中的所有先前数据
  2. 将新数据从导出文件复制到主文件“Workingfile.xlsm”中的特定工作表“EKKO”
  3. 关闭导出文件
  4. 复制特定工作表“EKKO”中的 B 列。

脚本似乎停留在这一行: y.Sheets("EKKO").Range("A1").PasteSpecial

 Sub Button1_Click()        
        
        
       If Not IsObject(SAPGuiApp) Then
           Set SapGuiAuto = GetObject("SAPGUI")
           Set SAPGuiApp = SapGuiAuto.GetScriptingEngine
        End If
        If Not IsObject(Connection) Then
           Set Connection = SAPGuiApp.Children(0)
        End If
        If Not IsObject(SAP_session) Then
           Set SAP_session = Connection.Children(0)
        End If
        If IsObject(WScript) Then
           WScript.ConnectObject SAP_session, "on"
           WScript.ConnectObject SAPGuiApp, "on"
        End If
        
        
        SAP_session.findById("wnd[0]").maximize
        SAP_session.findById("wnd[0]/tbar[0]/okcd").Text = "/nze16n"
        SAP_session.findById("wnd[0]").sendVKey 0
        SAP_session.findById("wnd[0]/usr/ctxtS_TABLE-LOW").Text = "EKKO"
        SAP_session.findById("wnd[0]/usr/ctxtS_TABLE-LOW").caretPosition = 4
        SAP_session.findById("wnd[0]/usr/btnGO").press
        SAP_session.findById("wnd[1]/tbar[0]/btn[0]").press
        SAP_session.findById("wnd[0]/tbar[1]/btn[17]").press
        SAP_session.findById("wnd[1]/usr/txtV-LOW").Text = "CV_TEST"
        SAP_session.findById("wnd[1]/usr/txtENAME-LOW").Text = ""
        SAP_session.findById("wnd[1]/usr/txtENAME-LOW").SetFocus
        SAP_session.findById("wnd[1]/usr/txtENAME-LOW").caretPosition = 0
        SAP_session.findById("wnd[1]/tbar[0]/btn[8]").press
        SAP_session.findById("wnd[0]/tbar[1]/btn[8]").press
        SAP_session.findById("wnd[0]/tbar[1]/btn[46]").press
        SAP_session.findById("wnd[0]/tbar[1]/btn[43]").press
        SAP_session.findById("wnd[1]/usr/ctxtDY_PATH").Text = "C:\Users\admu\Documents\SAP\SAP GUI"
        SAP_session.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = "export.xslx"
        SAP_session.findById("wnd[1]/tbar[0]/btn[11]").press
        
        
        End Sub
        
        ----------------------------------------------------------------------------
        Sub CopyFromExportFile()
        
        
        Dim x As Workbook
        Dim y As Workbook
        
        Set x = Workbooks("export.xlsx")
        Set y = Workbooks("Workfile.xlsm")
        
        

        x.Sheets("Sheet1").Range("A1").Copy
        y.Sheets("EKKO").Range("A1").ClearContents
        y.Sheets("EKKO").Range("A1").PasteSpecial
        
        x.Close
        
        y.Sheets("EKKO").Columns(2).Copy
        
        
        End Sub

我的订单错了……订单需要先clear ,然后copy paste ……还需要对代码行进行一些小的调整。

Sub CopyFromExportFile()    

Dim x As Workbook
Dim y As Workbook

Set x = Workbooks("export.xlsx")
Set y = Workbooks("Workfile.xlsm")

y.Sheets("EKKO").Cells.Clear

x.Sheets("Sheet1").Cells.Copy
y.Sheets("EKKO").Range("A1").PasteSpecial
Application.CutCopyMode = False

x.Close

y.Sheets("EKKO").Columns(2).Copy    

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM