Каждая новая строка должна начинаться с "
, а перед подчеркиванием вам нужно " &
для конкатенации такой большой строки. Тем не менее, я думаю, что это все равно не будет работать, потому что вы в любом случае можете определить адрес диапазона, который длинен, так как есть некоторые недокументированные ограничения на длину строки , которые вы можете передать на Range
, и ваш конструкция превышает этот предел.
Обратите внимание, что на самом деле вы можете построить диапазоны (например, используя Union
), которые превышают этот предел, но если вы затем запросите этот диапазон Address
, в соответствии с вышеприведенной проблемой, он будет молча усечен.
Dim addr As String
addr = "E12:W12,E14:W14,E16:W16,E18:W18,E20:W20,E22:W22,E24:W24,E26:W26,E28:W28," & _
"E30:W30,E32:W32,E34:W34,E36:W36,E38:W38,E40:W40," & _
"E42:W42,E44:W44,E46:W46,E48:W48,E50:W50,E52:W52,E54:W54,E54:W54,E56:W56,E58:W58," & _
"E60:W60,E62:W62,E64:W64,E66:W66,E68:W68,E70:W70,E72:W72,E74:W74,E76:W76,E78:W78," & _
"E80:W80,E82:W82,E84:W84,E86:W86,E88:W88,E90:W90,E92:W92"
Debug.Print Len(addr) '### This will print 335, versus the limit of 255
Таким образом, даже если вы правильно построите свой адрес (см. Выше), вы все равно не сможете использовать его для определения диапазона.
В конечном счете, это, вероятно, должно быть обработано с помощью Union
или пошаговой итерации. Но неясно, что вам нужно делать с этими диапазонами.