Форум по VBA, Excel и Word

VBA, Excel => VBA, макросы в Excel => Тема начата: Ram3 от 27 февраля 2014, 09:59

Название: Excel VBA Макросы: Получение форматированных значений ячеек.
Отправлено: Ram3 от 27 февраля 2014, 09:59
В ячейке используется формат, который добавляет спереди нули: 0000056789.
Когда я копирую данные из ячейки в переменную, то в переменной оказывается: 56789.

Как в переменную записать данные в том же виде, как юзер видит их в экселе?
Название: Re: Excel VBA Макросы: Получение форматированных значений ячеек.
Отправлено: Администратор от 27 февраля 2014, 10:17
Sub Макрос()

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

End Sub


Примечания

Свойство "Text" может дать неправильный результат. Например, если в ячейке будет дата, а ширина столбца будет очень узкая и вся дата не будет помещаться, то в ячейке будут символы "#". Свойство"Text" даст вот эти символы "#".
Название: Re: Excel VBA Макросы: Получение форматированных значений ячеек.
Отправлено: Ram3 от 27 февраля 2014, 10:37
Можно ли, используя свойство "Text", скопировать данные из нескольких эксель-ячеек в vba-массив одним действием?
Например, с помощью такого кода можно записать сразу несколько ячеек в массив:
arr() = Range("A1:A5").Value

Можно ли сделать так же в этом случае:?
arr() = Range("A1:A5").Text
Название: Re: Excel VBA Макросы: Получение форматированных значений ячеек.
Отправлено: Администратор от 27 февраля 2014, 10:44
Нет, такой возможности нет.
Нужно в цикле двигаться по каждой ячейке и нужно копировать данные из каждой ячейки в ячейку vba-массива.
Название: Re: Excel VBA Макросы: Получение форматированных значений ячеек.
Отправлено: Ram3 от 27 февраля 2014, 11:02
спасибо