Цитата:
Сообщение от
Antoncheg
Т.е. в 2007 офисе эта проблема исправлена...
Получается, что так. Интересно, что ее также нет в более ранней Excel 2000 - я проверил, запустив там такой VBA-код с
http://support.microsoft.com/kb/818808/en-us :
Код:
Sub XLTest()
Dim aValues(4)
aValues(0) = "Test1"
aValues(1) = "Test2"
aValues(2) = "Test3"
MsgBox "First the Good range set."
aValues(3) = String(911, 65)
Range("A1:D1").Value = aValues
MsgBox "Now the bad range set."
aValues(3) = String(912, 66)
Range("A2:D2").Value = aValues 'вызывает ошибку
End Sub
Отмечу, что проблема существует лишь для массивов (очевидно, CopyFromRecordset тоже ими оперирует). Если выполнить оператор с простым (не "массивным") присвоением, то всё ОК:
Код:
Range("A2").Value = String(912, 66) ' нормально поместит 912 букв B в ячейку