Обход именованного диапазона символов - PullRequest
2 голосов
/ 14 мая 2011

Я строю график, где ряды именуются диапазонами. Все работает нормально, так как у меня есть выпадающий список, где я выбираю клиента, и он перебирает данные, создает строку для именованного диапазона и редактирует ее, обновляет график, вуаля!

Теперь проблема в том, что, кажется, у меня есть ограничение в 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"

Как вы можете видеть, именно здесь начинаются проблемы.

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Как насчет этого

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 голос
/ 14 мая 2011

Именованный диапазон может ссылаться на другие именованные диапазоны, поэтому вы можете построить его в нескольких блоках имен, а затем использовать мастер-имя для ссылки на подблоки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...