Excel 命名表标题时出现类型不匹配错误
我试图将ListColumns添加到我在代码中创建的表中。我使用数组从另一个文件中的另一个工作表中提取单元格区域,以生成表的模板。当我查看“局部变量”窗口时,数组正在正确地提取数据,只是没有重命名标题。我在注释行中得到一个错误:Excel 命名表标题时出现类型不匹配错误,excel,vba,Excel,Vba,我试图将ListColumns添加到我在代码中创建的表中。我使用数组从另一个文件中的另一个工作表中提取单元格区域,以生成表的模板。当我查看“局部变量”窗口时,数组正在正确地提取数据,只是没有重命名标题。我在注释行中得到一个错误: Dim i As Long Dim hdrs, hdrs2 hdrs = Array(srcSheet.Range("A1:K1").Value2) hdrs2 = Array(srcSheet2.Range("A1:I1").
Dim i As Long
Dim hdrs, hdrs2
hdrs = Array(srcSheet.Range("A1:K1").Value2)
hdrs2 = Array(srcSheet2.Range("A1:I1").Value2)
xlSheet2.ListObjects.Add.Name = "tblData"
xlSheet3.ListObjects.Add.Name = "tblCodes"
Set tbl = xlSheet2.ListObjects("tblData")
Set tbl2 = xlSheet3.ListObjects("tblCodes")
With tbl
For i = 0 To UBound(hdrs)
.ListColumns.Add
.ListColumns(.ListColumns.Count).Name = hdrs(i) '< Type Mismatch error
Next i
End With
Dim i尽可能长
尺寸hdrs,hdrs2
hdrs=阵列(srcSheet.Range(“A1:K1”).值2)
hdrs2=阵列(srcSheet2.范围(“A1:I1”).值2)
xlSheet2.ListObjects.Add.Name=“tblData”
xlSheet3.ListObjects.Add.Name=“tblCodes”
设置tbl=xlSheet2.ListObjects(“tblData”)
设置tbl2=xlSheet3.ListObjects(“tblCodes”)
带tbl
对于i=0至UBound(hdrs)
.ListColumns.Add
.ListColumns(.ListColumns.Count).Name=hdrs(i)<类型不匹配错误
接下来我
以
srcSheet是当前(ThisWorkbook)工作表,xlSheets是其他文件中的工作表。第一列是日期字段。
我只包含了一个数组集,因为我确信另一个数组集也会有同样的问题。
谢谢您将填充数组,如下所示:
hdrs = Application.Transpose(Application.Transpose(srcSheet.Range("A1:K1"))) 'Import range to array
示例代码: 要创建1D阵列,请执行以下操作:
Sub Alt1 ()
Dim hdrs, hdrs2
Dim sh As Worksheet
Set srcSheet = Sheet1
hdrs = Application.Transpose(Application.Transpose(srcSheet.Range("A1:K1"))) 'Import range to array
For i = LBound(hdrs) To UBound(hdrs)
Debug.Print hdrs(i)
Cells(i + 1, "A").Value = hdrs(i) '< Type Mismatch error
Next i
End Sub
Sub Alt1()
尺寸hdrs,hdrs2
将sh设置为工作表
设置srcSheet=Sheet1
hdrs=Application.Transpose(Application.Transpose(srcSheet.Range(“A1:K1”)))将范围导入数组
对于i=LBound(hdrs)至UBound(hdrs)
调试.打印HDR(i)
单元(i+1,“A”)。值=hdrs(i)<类型不匹配错误
接下来我
端接头
要为阵列创建更多维度(本例中为2D),请执行以下操作:
Sub Alt2()
Dim hdrs, hdrs2
Dim sh As Worksheet
Set srcSheet = Sheet1
hdrs = srcSheet.Range("A1:K1").Value 'Import range to array
For i = LBound(hdrs, 2) To UBound(hdrs, 2) 'Notice that we need to change the upper bound definition
Cells(i + 1, "A").Value = hdrs(1, i) '< Type Mismatch error
Next i
End Sub
Sub Alt2()
尺寸hdrs,hdrs2
将sh设置为工作表
设置srcSheet=Sheet1
hdrs=srcSheet.Range(“A1:K1”).Value“将范围导入数组”
对于i=LBound(hdrs,2)到UBound(hdrs,2)”,请注意,我们需要更改上限定义
单元(i+1,“A”)。值=hdrs(1,i)<类型不匹配错误
接下来我
端接头
了解如何使用范围内的阵列。提示:您不能使用数组
。我如何更正@BigBen?