Excel VBA运行时错误1004选择范围

Excel VBA运行时错误1004选择范围,excel,select,vba,Excel,Select,Vba,这是将两种软件文档组合在一起并分析数据以生成图表或报告的工具代码的一部分。这个工具已经使用了很长时间。但最近,这一特定文档的列标题已更改。所以这个工具不能再正常工作了。当运行这个porgrem时。调试器在从新文件导入数据时显示错误1004和范围选择问题。谢谢你的帮助 Sub Datenzusammenfügen(nomdoc As String, x As Integer) Dim LZ As Long Dim LS As Long Dim LZe As Long Dim LSe As Lon

这是将两种软件文档组合在一起并分析数据以生成图表或报告的工具代码的一部分。这个工具已经使用了很长时间。但最近,这一特定文档的列标题已更改。所以这个工具不能再正常工作了。当运行这个porgrem时。调试器在从新文件导入数据时显示错误1004和范围选择问题。谢谢你的帮助

Sub Datenzusammenfügen(nomdoc As String, x As Integer)

Dim LZ As Long
Dim LS As Long
Dim LZe As Long
Dim LSe As Long

LS = Workbooks(nomdoc).Worksheets("inter1SAP").Cells(3, 256).End(xlToLeft).Column
LZ = Workbooks(nomdoc).Worksheets("inter1SAP").Cells(Rows.Count, 1).End(xlUp).Row


blatterstellen "inter2SAP", nomdoc, 5

Workbooks(nomdoc).PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Range(Workbooks(nomdoc).Worksheets("inter1SAP").Cells(3, 1), Workbooks(nomdoc).Worksheets("inter1SAP").Cells(LZ, LS)), _
Version:=xlPivotTableVersion12).CreatePivotTable TableDestination:=Workbooks(nomdoc).Worksheets("inter2SAP").Cells(1, 1), _
TableName:="SAPGesamt", DefaultVersion:=xlPivotTableVersion12

Workbooks(nomdoc).Worksheets("inter2SAP").Activate

ActiveWorkbook.ShowPivotTableFieldList = True


With ActiveSheet.PivotTables("SAPGesamt").PivotFields("Partnerobjekt")
    .Orientation = xlRowField
    .Position = 1
    .Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
    End With
With ActiveSheet.PivotTables("SAPGesamt").PivotFields("Partnerobjektart")
    .Orientation = xlRowField
    .Position = 2
    .Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
End With
With ActiveSheet.PivotTables("SAPGesamt").PivotFields("Cost Center")
    .Orientation = xlRowField
    .Position = 3
    .Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
End With
With ActiveSheet.PivotTables("SAPGesamt").PivotFields("Leistungsart")
    .Orientation = xlRowField
    .Position = 4
    .Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
End With
With ActiveSheet.PivotTables("SAPGesamt").PivotFields("Bereich in SAP")
    .Orientation = xlRowField
    .Position = 5
    .Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
End With
With ActiveSheet.PivotTables("SAPGesamt").PivotFields("OBS element SAP")
    .Orientation = xlRowField
    .Position = 6
    .Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
End With

k = 7
    Do While Workbooks(nomdoc).Worksheets("inter1SAP").Cells(2, k).Value <> ""

    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Jan"), "Summe von Jan", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Feb"), "Summe von Feb ", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Mrz"), "Summe von Mrz", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Apr"), "Summe von Apr", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Mai"), "Summe von Mai", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Jun"), "Summe von Jun", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Jul"), "Summe von Jul", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Aug"), "Summe von Aug", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Sep"), "Summe von Sep", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Okt"), "Summe von Okt", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Nov"), "Summe von Nov", xlSum
    ActiveSheet.PivotTables("SAPGesamt").AddDataField ActiveSheet.PivotTables( _
    "SAPGesamt").PivotFields("Dez"), "Summe von Dez", xlSum

k = k + 12
Loop

With ActiveSheet.PivotTables("SAPGesamt")
    .InGridDropZones = True
    .RowAxisLayout xlTabularRow
End With


Battloeschen "inter1SAP", nomdoc

LZe = Workbooks(nomdoc).Worksheets("inter2SAP").Cells(Rows.Count, 4).End(xlUp).Row
LSe = Workbooks(nomdoc).Worksheets("inter2SAP").Cells(2, 256).End(xlToLeft).Column


Range(Workbooks(nomdoc).Worksheets("inter2SAP").Cells(3, 1), _
Workbooks(nomdoc).Worksheets("inter2SAP").Cells(LZe, 1)).Copy
Sheets("Rohdaten SAP " & x).Select
Workbooks(nomdoc).Worksheets("Rohdaten SAP " & x).Cells(4, 2).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Range(Workbooks(nomdoc).Worksheets("inter2SAP").Cells(3, 2), _
Workbooks(nomdoc).Worksheets("inter2SAP").Cells(LZe, 2)).Copy
Sheets("Rohdaten SAP " & x).Select
Workbooks(nomdoc).Worksheets("Rohdaten SAP " & x).Cells(4, 3).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Range(Workbooks(nomdoc).Worksheets("inter2SAP").Cells(3, 3), _
Workbooks(nomdoc).Worksheets("inter2SAP").Cells(LZe, 3)).Copy
Sheets("Rohdaten SAP " & x).Select
Workbooks(nomdoc).Worksheets("Rohdaten SAP " & x).Cells(4, 5).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Range(Workbooks(nomdoc).Worksheets("inter2SAP").Cells(3, 4), _
Workbooks(nomdoc).Worksheets("inter2SAP").Cells(LZe, 4)).Copy
Sheets("Rohdaten SAP " & x).Select
Workbooks(nomdoc).Worksheets("Rohdaten SAP " & x).Cells(4, 7).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Range(Workbooks(nomdoc).Worksheets("inter2SAP").Cells(3, 5), _
Workbooks(nomdoc).Worksheets("inter2SAP").Cells(LZe, 5)).Copy
Sheets("Rohdaten SAP " & x).Select
Workbooks(nomdoc).Worksheets("Rohdaten SAP " & x).Cells(4, 8).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Range(Workbooks(nomdoc).Worksheets("inter2SAP").Cells(3, 6), _
Workbooks(nomdoc).Worksheets("inter2SAP").Cells(LZe, 6)).Copy
Sheets("Rohdaten SAP " & x).Select
Workbooks(nomdoc).Worksheets("Rohdaten SAP " & x).Cells(4, 11).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Range(Workbooks(nomdoc).Worksheets("inter2SAP").Cells(3, 7), _
Workbooks(nomdoc).Worksheets("inter2SAP").Cells(LZe, LSe)).Copy
Workbooks(nomdoc).Worksheets("Rohdaten SAP " & x).Cells(4, 17).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Battloeschen "inter2SAP", nomdoc
formatertableau nomdoc, "Rohdaten SAP " & x, LZe, 3, 2, 3, 5, 7, 8, 11

End Sub
Sub-Datenzusammenfügen(nomdoc作为字符串,x作为整数)
模糊LZ尽可能长
暗的和长的一样
暗淡如长
和伦敦证交所一样长
LS=工作簿(nomdoc).工作表(“inter1SAP”).单元格(3256).结束(xlToLeft).列
LZ=工作簿(nomdoc).工作表(“inter1SAP”).单元格(Rows.Count,1).结束(xlUp).行
blatterstellen“inter2SAP”,nomdoc,5
工作簿(nomdoc).PivotCaches.Create(SourceType:=xlDatabase,SourceData:=_
范围(工作簿(nomdoc).工作表(“inter1SAP”).单元格(3,1),工作簿(nomdoc).工作表(“inter1SAP”).单元格(LZ,LS))_
版本:=xlPivotTableVersion12)。CreatePivotTableDestination:=工作簿(nomdoc)。工作表(“inter2SAP”)。单元格(1,1)_
TableName:=“SAPGesamt”,默认版本:=xlPivotTableVersion12
工作簿(nomdoc)。工作表(“inter2SAP”)。激活
ActiveWorkbook.ShowPivotTableFieldList=True
使用ActiveSheet.PivotTables(“SAPGesamt”).PivotFields(“Partnerobjekt”)
.Orientation=xlRowField
.位置=1
.小计=数组(假,假,假,假,假,假,假,假,假,假,假,假,假,假)
以
使用ActiveSheet.PivotTables(“SAPGesamt”).PivotFields(“PartnerObjeTart”)
.Orientation=xlRowField
.位置=2
.小计=数组(假,假,假,假,假,假,假,假,假,假,假,假,假,假)
以
使用ActiveSheet.PivotTables(“SAPGesamt”).PivotFields(“成本中心”)
.Orientation=xlRowField
.职位=3
.小计=数组(假,假,假,假,假,假,假,假,假,假,假,假,假,假)
以
使用ActiveSheet.PivotTables(“SAPGesamt”).PivotFields(“Leistungsart”)
.Orientation=xlRowField
.职位=4
.小计=数组(假,假,假,假,假,假,假,假,假,假,假,假,假,假)
以
使用ActiveSheet.PivotTables(“SAPGesamt”).PivotFields(“SAP中的Bereich”)
.Orientation=xlRowField
.职位=5
.小计=数组(假,假,假,假,假,假,假,假,假,假,假,假,假,假)
以
使用ActiveSheet.PivotTables(“SAPGesamt”).PivotFields(“OBS元素SAP”)
.Orientation=xlRowField
.职位=6
.小计=数组(假,假,假,假,假,假,假,假,假,假,假,假,假,假)
以
k=7
Do While工作簿(nomdoc).工作表(“inter1SAP”).单元格(2,k).值“”
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“Jan”),“Summe von Jan”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“二月”),“二月总结”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“Mrz”),“Mrz汇总”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“Apr”),“Apr之和”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“Mai”),“Summe von Mai”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“Jun”),“Summe von Jun”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“七月”),“七月总结”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“八月”),“八月之和”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“Sep”),“Sep汇总”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“Okt”),“Okt之和”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“十一月”),“十一月之和”,xlSum
ActiveSheet.PivotTables(“SAPGesamt”).AddDataField ActiveSheet.PivotTables(_
“SAPGesamt”)。数据透视字段(“Dez”),“Summe von Dez”,xlSum
k=k+12
环
使用ActiveSheet.PivotTables(“SAPGesamt”)
.IngridRopZones=True
.ROWAXIS布局XLTABLARROW
以
Battloeschen“inter1SAP”,nomdoc
LZe=工作簿(nomdoc).工作表(“inter2SAP”).单元格(Rows.Count,4).结束(xlUp).行
LSe=工作簿(nomdoc).工作表(“inter2SAP”).单元格(2256).结束(xlToLeft).列
范围(工作簿(nomdoc).工作表(“inter2SAP”).单元格(3,1)_
工作手册(nomdoc)。工作表(“inter2SAP”)。单元格(LZe,1))。副本
工作表(“Rohdaten SAP”&x)。选择
工作手册(nomdoc)。工作表(“Rohdaten SAP”和x)。单元格(4,2)。选择
Selection.Paste特殊粘贴:=xlPasteValuesAndNumberFormats,操作:=xlNone,skipblank:=False,转置:=False
范围(工作簿(nomdoc).工作表(“inter2SAP”).单元格(3,2)_
工作手册(nomdoc)。工作表(“inter2SAP”)。单元格(LZe,2))。副本
工作表(“Rohdaten SAP”&x)。选择
工作手册(nomdoc)。工作表(“Rohdaten SAP”和x)。单元格(4,3)。选择
Selection.Paste特殊粘贴:=xlPasteValuesAndNumberFormats,操作:=xlNone,skipblank:=False,转置:=False
范围(工作簿(nomdoc).工作表(“inter2SAP”).单元格(3,3)_
工作手册(nomdoc)。工作表(“inter2SAP”)。单元格(LZe,3))。副本
工作表(“Rohdaten SAP”&x)。选择
工作手册(nomdoc)。工作表(“Rohdaten SAP”和x)。单元格(4,5)。选择
Selection.Paste特殊粘贴:=xlPasteValuesAndNumberFormats,操作:=xlNone,skipblank:=False,转置:=False
范围(工作簿(nomdoc).工作表(“inter2SAP”).单元格(3,4)_
工作手册(nomdoc).工作表(“inter2SAP”).C
Dim PivotRange as Range
With Workbooks(nomdoc).Worksheets("inter1SAP")
    Set PivotRange = .Range(.Cells(3,1), .Cells(LZ, LS))
End With

Workbooks(nomdoc).PivotCaches.Create(SourceType:=xlDatabase, _
    SourceData:=PivotRange, _
    Version:=xlPivotTableVersion12).CreatePivotTable... etc.