名为范围字符限制的解决方法

我正在build立一个图表,其中的系列被命名为范围。 这一切工作正常,因为我有一个Dropbox,在那里我select客户,并通过数据循环,创build命名范围的string和编辑它,刷新图表,瞧!

现在,问题是,这个string似乎有255个字符的限制,如果客户有很多logging,那么它是错误的。

有没有人遇到类似的问题或知道解决方法?

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"

正如你所看到的,这是问题的起因。

这样的事情呢?

 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 

命名范围可以引用其他命名范围,所以你可以build立它在几个名称块,然后使用主名称来指代子块