Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как игнорировать формат ячеек при копировании ячеек в массив - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как игнорировать формат ячеек при копировании ячеек в массив (Макросы/Sub)
Как игнорировать формат ячеек при копировании ячеек в массив
ikki Дата: Суббота, 01.08.2015, 07:46 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
привет всем.

столкнулся неожиданно.
простой код (в приложенном файле)
[vba]
Код
Sub test()
     Dim arr()
     With ActiveSheet
         arr = .[a1:a3].Value
         arr = .[b1:b2].Value
         arr = .[b1:b3].Value
     End With
End Sub
[/vba]

третье присвоение приводит к ошибке времени выполнения Run-time error 6 (Overflow)
причина простая: в одной из ячеек (точнее - в B3) с большим числовым значением ошибочно установлен числовой формат Дата
в A1:A3 точно такие же значения, но формат Общий. обрабатываются без проблем.

вопрос: как избежать такую ошибку, не прибегая к циклам, приведениям типов и т.п.?
файл приложен.

дубль темы: http://www.planetaexcel.ru/forum....-massiv
К сообщению приложен файл: arrTest.xlsm(14.5 Kb)


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениепривет всем.

столкнулся неожиданно.
простой код (в приложенном файле)
[vba]
Код
Sub test()
     Dim arr()
     With ActiveSheet
         arr = .[a1:a3].Value
         arr = .[b1:b2].Value
         arr = .[b1:b3].Value
     End With
End Sub
[/vba]

третье присвоение приводит к ошибке времени выполнения Run-time error 6 (Overflow)
причина простая: в одной из ячеек (точнее - в B3) с большим числовым значением ошибочно установлен числовой формат Дата
в A1:A3 точно такие же значения, но формат Общий. обрабатываются без проблем.

вопрос: как избежать такую ошибку, не прибегая к циклам, приведениям типов и т.п.?
файл приложен.

дубль темы: http://www.planetaexcel.ru/forum....-massiv

Автор - ikki
Дата добавления - 01.08.2015 в 07:46
ikki Дата: Суббота, 01.08.2015, 07:59 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
один вариант (общий ли???) я нашёл сам с помощью МНТ:[vba]
Код
arr = .[b1:b3].Value2
[/vba]но не знаю - достаточно ли это правильно и универсально?


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеодин вариант (общий ли???) я нашёл сам с помощью МНТ:[vba]
Код
arr = .[b1:b3].Value2
[/vba]но не знаю - достаточно ли это правильно и универсально?

Автор - ikki
Дата добавления - 01.08.2015 в 07:59
Serge_007 Дата: Суббота, 01.08.2015, 08:13 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 13873
Репутация: 2315 ±
Замечаний: ±

Excel 2010
Привет

как избежать такую ошибку, не прибегая к циклам, приведениям типов и т.п.?
Саш, а чем тебя не устраивает приведение типов?

[p.s.]Про Value2 ты уже сам нашел :) [/p.s.]


Яндекс-деньги:41001419691823 | WMR:126292472390
 
Ответить
СообщениеПривет

как избежать такую ошибку, не прибегая к циклам, приведениям типов и т.п.?
Саш, а чем тебя не устраивает приведение типов?

[p.s.]Про Value2 ты уже сам нашел :) [/p.s.]

Автор - Serge_007
Дата добавления - 01.08.2015 в 08:13
nilem Дата: Суббота, 01.08.2015, 08:21 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1589
Репутация: 551 ±
Замечаний: 0% ±

Excel 2013, 2016
Саш, привет
имхо вполне универсально. Я тоже использую Value2 для массивов с Дата+Время+миллисекунды, например (для просто Дата+Время вполне подходит Value)
а вот насчет правильно - справка ведь говорит "Value2 property doesn’t use the Currency and Date data types" ?


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеСаш, привет
имхо вполне универсально. Я тоже использую Value2 для массивов с Дата+Время+миллисекунды, например (для просто Дата+Время вполне подходит Value)
а вот насчет правильно - справка ведь говорит "Value2 property doesn’t use the Currency and Date data types" ?

Автор - nilem
Дата добавления - 01.08.2015 в 08:21
ikki Дата: Суббота, 01.08.2015, 08:22 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
чем тебя не устраивает приведение типов?
циклом. скоростью. многабукаф в коде.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
чем тебя не устраивает приведение типов?
циклом. скоростью. многабукаф в коде.

Автор - ikki
Дата добавления - 01.08.2015 в 08:22
ikki Дата: Суббота, 01.08.2015, 08:25 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
имхо вполне универсально
угум... будем надеяться?
а никаких подводных камней в Value2 нету?


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
имхо вполне универсально
угум... будем надеяться?
а никаких подводных камней в Value2 нету?

Автор - ikki
Дата добавления - 01.08.2015 в 08:25
nilem Дата: Суббота, 01.08.2015, 09:28 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1589
Репутация: 551 ±
Замечаний: 0% ±

Excel 2013, 2016
да вроде нет
берем в массив с Value2 и пишем на лист тоже с Value2


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеда вроде нет
берем в массив с Value2 и пишем на лист тоже с Value2

Автор - nilem
Дата добавления - 01.08.2015 в 09:28
Serge_007 Дата: Суббота, 01.08.2015, 11:10 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 13873
Репутация: 2315 ±
Замечаний: ±

Excel 2010
подводных камней в Value2 нету?
Educated Fool советует: [VBA EXCEL] Range в массив


Яндекс-деньги:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
подводных камней в Value2 нету?
Educated Fool советует: [VBA EXCEL] Range в массив

Автор - Serge_007
Дата добавления - 01.08.2015 в 11:10
ikki Дата: Суббота, 01.08.2015, 11:31 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
спасибо всем. тема закрыта.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеспасибо всем. тема закрыта.

Автор - ikki
Дата добавления - 01.08.2015 в 11:31
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как игнорировать формат ячеек при копировании ячеек в массив (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования Jobsora jooble
© 2010-2021 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!