我有一个一维字符串数组,它的大小是动态的。
在
Application.Transpose
之后,它将 #N/A 设置为范围值。
Dim a_ComboLovs() As String
Dim a_metasheet As Worksheet ' consider this as worksheet object
Dim g_ComboSourceColCount as long
' For example, setting it to some values for illustration:
a_ComboLovs = Split("Value1,Value2,Value3,...,Value80000", ",")
g_ComboSourceColCount = 25
a_metasheet.Range(g_ComboSourceColCount & "100:" & g_ComboSourceColCount & UBound(a_ComboLovs) + 100).Value = Application.Transpose(a_ComboLovs)
a_metasheet.Range(g_ComboSourceColCount & "100:" & g_ComboSourceColCount & UBound(a_ComboLovs) + 100).Name = "Evalranage"
该代码在
WorkSheet_Open
事件中调用。
在达到某些值(15k)之前,它会在每个单元格中打印 #N/A 到最后一个值。
我正在努力避免循环。
您的
Range()
参数错误
例如
g_ComboSourceColCount & "100:"
解析为“25100:”,这不是作为范围界限的有效引用
使用
Cells()
而不是 Range()
,以便您可以使用数值作为行和列索引
Dim a_metasheet As Worksheet ' consider this as worksheet object
Set a_metasheet = ActiveSheet ' change it as per your needs
' For example, setting it to some values for illustration:
Dim a_ComboLovs() As String
a_ComboLovs = Split("Value1,Value2,Value3,...,Value80000", ",")
Dim g_ComboSourceColCount As Long
g_ComboSourceColCount = 25
a_metasheet.Cells(100, g_ComboSourceColCount).Resize(UBound(a_ComboLovs)).Value = Application.Transpose(a_ComboLovs)