Excel VBA Макросы: Получение форматированных значений ячеек.

Автор Ram3, 27 февраля 2014, 09:59

Ram3

В ячейке используется формат, который добавляет спереди нули: 0000056789.
Когда я копирую данные из ячейки в переменную, то в переменной оказывается: 56789.

Как в переменную записать данные в том же виде, как юзер видит их в экселе?

Администратор

Sub Макрос()

    Dim var
   
    var = Range("A1").Text

End Sub


Примечания

Свойство "Text" может дать неправильный результат. Например, если в ячейке будет дата, а ширина столбца будет очень узкая и вся дата не будет помещаться, то в ячейке будут символы "#". Свойство"Text" даст вот эти символы "#".

Ram3

Можно ли, используя свойство "Text", скопировать данные из нескольких эксель-ячеек в vba-массив одним действием?
Например, с помощью такого кода можно записать сразу несколько ячеек в массив:
arr() = Range("A1:A5").Value

Можно ли сделать так же в этом случае:?
arr() = Range("A1:A5").Text

Администратор

Нет, такой возможности нет.
Нужно в цикле двигаться по каждой ячейке и нужно копировать данные из каждой ячейки в ячейку vba-массива.