我正在构建一个图表,其中系列名为范围。这一切都很好,因为我有一个Dropbox,在那里我选择客户,它循环遍历数据,为命名范围创建字符串并编辑它,刷新图表,瞧!
现在,问题是这个字符串似乎有255个字符的限制,如果客户有很多记录,那么它就会出错。
是否有人遇到类似问题或知道解决方法?
For i = 8 To lRow
If Sheets("Data").Cells(i, 4).Value = cmbInst.Value Then
nRangeTrade = nRangeTrade & "Data!$A$" & i & ","
nRangeSettle = nRangeSettle & "Data!$C$" & i & ","
End If
Next
nRangeTrade
的价值:
Data!$A$85,Data!$A$97,Data!$A$98,Data!$A$156,Data!$A$157,Data!$A$308,Data!$A$309,Data!$A$464,Data!$A$473,Data!$A$474,Data!$A$478,Data!$A$490,Data!$A$541,Data!$A$546,Data!$A$633,Da"
正如您所看到的,这就是问题所在。
答案 0 :(得分:3)
这样的事情
Sub test()
Dim nRangeTrade As Range, nRangeSettle As Range
lrow = 1000
For i = 8 To lrow
If Sheets("Data").Cells(i, 4).Value = cmbInst.Value Then
If nRangeTrade Is Nothing Then
Set nRangeTrade = Sheets("Data").Range("A" & i)
Else
Set nRangeTrade = Application.Union(nRangeTrade, Sheets("Data").Range("A" & i))
End If
If nRangeSettle Is Nothing Then
Set nRangeSettle = Sheets("Data").Range("C" & i)
Else
Set nRangeSettle = Application.Union(nRangeSettle, Sheets("Data").Range("C" & i))
End If
End If
Next i
'nRangeTrade.Select
Sheets("Data").Names.Add Name:="nRangeTrade", RefersTo:=nRangeTrade
Sheets("Data").Names.Add Name:="nRangeSettle", RefersTo:=nRangeSettle
End Sub
答案 1 :(得分:1)
命名范围可以引用其他命名范围,因此您可以在多个名称块中构建它,然后使用主名称来引用子块