将整列(基于特定标题)从一张工作表复制到另一张工作表(以其他顺序)在Excel 365上不起作用
有一个我无法独自克服的问题: 下面的代码在运行Excel 2013 Pro(32位)的Win 8.1上运行良好。它在使用Excel365(也是32位)的Win10上惨败 VBA控制台以蓝色突出显示我分配给列(SRO、Desc、Status、Project等)的名称,以黄色突出显示“Private Sub Generate()”将整列(基于特定标题)从一张工作表复制到另一张工作表(以其他顺序)在Excel 365上不起作用,excel,vba,Excel,Vba,有一个我无法独自克服的问题: 下面的代码在运行Excel 2013 Pro(32位)的Win 8.1上运行良好。它在使用Excel365(也是32位)的Win10上惨败 VBA控制台以蓝色突出显示我分配给列(SRO、Desc、Status、Project等)的名称,以黄色突出显示“Private Sub Generate()” Private Sub Generate() Application.EnableEvents = False Application.ScreenUp
Private Sub Generate()
Application.EnableEvents = False
Application.ScreenUpdating = False
ActiveWorkbook.Sheets("Imported Data").Activate
'tis where You select what columns You want to copy and name them
SRO = WorksheetFunction.Match("SroNum", Rows("1:1"), 0)
Desc = WorksheetFunction.Match("Description", Rows("1:1"), 0)
Status = WorksheetFunction.Match("Status", Rows("1:1"), 0)
Project = WorksheetFunction.Match("srouf_platform", Rows("1:1"), 0)
SROlead = WorksheetFunction.Match("Name", Rows("1:1"), 0)
OpenDate = WorksheetFunction.Match("CreateDate", Rows("1:1"), 0)
CloseDate = WorksheetFunction.Match("Close Date", Rows("1:1"), 0)
TPT = WorksheetFunction.Match("SroTPTinDays", Rows("1:1"), 0)
STATUSnew = WorksheetFunction.Match("srouf_intel_sro_status", Rows("1:1"), 0)
WRKstat = WorksheetFunction.Match("Status Code", Rows("1:1"), 0)
OpCode = WorksheetFunction.Match("OperationCode", Rows("1:1"), 0)
Priority = WorksheetFunction.Match("Priority Code", Rows("1:1"), 0)
OpPartner = WorksheetFunction.Match("OperationPartnerName", Rows("1:1"), 0)
DUT = WorksheetFunction.Match("LineSerialNum", Rows("1:1"), 0)
OpDesc = WorksheetFunction.Match("OperationDescription", Rows("1:1"), 0)
OpStatus = WorksheetFunction.Match("OperationStatus", Rows("1:1"), 0)
CreatedBy = WorksheetFunction.Match("CreatedBy", Rows("1:1"), 0)
'adding new sheet - CROPPED DATA
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Cropped Data"
'tis where You copy selected columns to CROPPED DATA in specific A-Q order
Sheets("Imported Data").Columns(SRO).Copy Destination:=Sheets("Cropped Data").Range("A1")
Sheets("Imported Data").Columns(Desc).Copy Destination:=Sheets("Cropped Data").Range("B1")
Sheets("Imported Data").Columns(Status).Copy Destination:=Sheets("Cropped Data").Range("C1")
Sheets("Imported Data").Columns(Project).Copy Destination:=Sheets("Cropped Data").Range("D1")
Sheets("Imported Data").Columns(SROlead).Copy Destination:=Sheets("Cropped Data").Range("E1")
Sheets("Imported Data").Columns(OpenDate).Copy Destination:=Sheets("Cropped Data").Range("F1")
Sheets("Imported Data").Columns(CloseDate).Copy Destination:=Sheets("Cropped Data").Range("G1")
Sheets("Imported Data").Columns(TPT).Copy Destination:=Sheets("Cropped Data").Range("H1")
Sheets("Imported Data").Columns(STATUSnew).Copy Destination:=Sheets("Cropped Data").Range("I1")
Sheets("Imported Data").Columns(WRKstat).Copy Destination:=Sheets("Cropped Data").Range("J1")
Sheets("Imported Data").Columns(Priority).Copy Destination:=Sheets("Cropped Data").Range("K1")
Sheets("Imported Data").Columns(CreatedBy).Copy Destination:=Sheets("Cropped Data").Range("L1")
Sheets("Imported Data").Columns(OpPartner).Copy Destination:=Sheets("Cropped Data").Range("M1")
Sheets("Imported Data").Columns(DUT).Copy Destination:=Sheets("Cropped Data").Range("N1")
Sheets("Imported Data").Columns(OpCode).Copy Destination:=Sheets("Cropped Data").Range("O1")
Sheets("Imported Data").Columns(OpDesc).Copy Destination:=Sheets("Cropped Data").Range("P1")
Sheets("Imported Data").Columns(OpStatus).Copy Destination:=Sheets("Cropped Data").Range("Q1")
End Sub
我得到的错误是:
隐藏模块中的编译错误:生成
还有其他选择吗?
我应该如何重新措辞,才能让excel 365工作?
我需要这个代码是尽可能轻-吨的数据正在处理
任务是:在工作表“导入的数据”中找到特定的标题列,并将它们复制到新工作表“裁剪的数据”中,但顺序不同(不是全部!)。有两种情况会导致此问题:
Private Sub Generate2()
'warning! it's ZERO in all SR0, not O!
Dim SR0 As Double
Dim Descpt As Double
Dim Stats As Double
Dim Project As Double
Dim SR0lead As Double
Dim OpenDate As Double
Dim CloseDate As Double
Dim TPT As Double
Dim STATUSnew As Double
Dim WRKstat As Double
Dim OpCode As Double
Dim Priority As Double
Dim OpPartner As Double
Dim DUT As Double
Dim OpDesc As Double
Dim OpStatus As Double
Dim CreatedBy As Double
Application.EnableEvents = False
Application.ScreenUpdating = False
ActiveWorkbook.Sheets("Imported Data").Activate
'tis where You select what columns You want to copy and name them
SR0 = Application.WorksheetFunction.Match("SroNum", Rows("1:1"), 0)
Descpt = WorksheetFunction.Match("Description", Rows("1:1"), 0)
Stats = WorksheetFunction.Match("Status", Rows("1:1"), 0)
Project = WorksheetFunction.Match("srouf_platform", Rows("1:1"), 0)
SR0lead = WorksheetFunction.Match("Name", Rows("1:1"), 0)
OpenDate = WorksheetFunction.Match("CreateDate", Rows("1:1"), 0)
CloseDate = WorksheetFunction.Match("Close Date", Rows("1:1"), 0)
TPT = WorksheetFunction.Match("SroTPTinDays", Rows("1:1"), 0)
STATUSnew = WorksheetFunction.Match("srouf_intel_sro_status", Rows("1:1"), 0)
WRKstat = WorksheetFunction.Match("Status Code", Rows("1:1"), 0)
OpCode = WorksheetFunction.Match("OperationCode", Rows("1:1"), 0)
Priority = WorksheetFunction.Match("Priority Code", Rows("1:1"), 0)
OpPartner = WorksheetFunction.Match("OperationPartnerName", Rows("1:1"), 0)
DUT = WorksheetFunction.Match("LineSerialNum", Rows("1:1"), 0)
OpDesc = WorksheetFunction.Match("OperationDescription", Rows("1:1"), 0)
OpStatus = WorksheetFunction.Match("OperationStatus", Rows("1:1"), 0)
CreatedBy = WorksheetFunction.Match("CreatedBy", Rows("1:1"), 0)
'adding new sheet - CROPPED DATA
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Cropped Data"
'tis where You copy selected columns to CROPPED DATA in specific A-Q order
Sheets("Imported Data").Columns(SR0).Copy Destination:=Sheets("Cropped Data").Range("A1")
Sheets("Imported Data").Columns(Descpt).Copy Destination:=Sheets("Cropped Data").Range("B1")
Sheets("Imported Data").Columns(Stats).Copy Destination:=Sheets("Cropped Data").Range("C1")
Sheets("Imported Data").Columns(Project).Copy Destination:=Sheets("Cropped Data").Range("D1")
Sheets("Imported Data").Columns(SR0lead).Copy Destination:=Sheets("Cropped Data").Range("E1")
Sheets("Imported Data").Columns(OpenDate).Copy Destination:=Sheets("Cropped Data").Range("F1")
Sheets("Imported Data").Columns(CloseDate).Copy Destination:=Sheets("Cropped Data").Range("G1")
Sheets("Imported Data").Columns(TPT).Copy Destination:=Sheets("Cropped Data").Range("H1")
Sheets("Imported Data").Columns(STATUSnew).Copy Destination:=Sheets("Cropped Data").Range("I1")
Sheets("Imported Data").Columns(WRKstat).Copy Destination:=Sheets("Cropped Data").Range("J1")
Sheets("Imported Data").Columns(Priority).Copy Destination:=Sheets("Cropped Data").Range("K1")
Sheets("Imported Data").Columns(CreatedBy).Copy Destination:=Sheets("Cropped Data").Range("L1")
Sheets("Imported Data").Columns(OpPartner).Copy Destination:=Sheets("Cropped Data").Range("M1")
Sheets("Imported Data").Columns(DUT).Copy Destination:=Sheets("Cropped Data").Range("N1")
Sheets("Imported Data").Columns(OpCode).Copy Destination:=Sheets("Cropped Data").Range("O1")
Sheets("Imported Data").Columns(OpDesc).Copy Destination:=Sheets("Cropped Data").Range("P1")
Sheets("Imported Data").Columns(OpStatus).Copy Destination:=Sheets("Cropped Data").Range("Q1")