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

Вход

Регистрация

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

 

= Мир MS Excel/тип данных в массиве - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » тип данных в массиве (Макросы/Sub)
тип данных в массиве
urlchik Дата: Четверг, 06.06.2019, 10:02 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте!
Прошу помочь в вопросе лузеру (т.е. мне)!
есть таблица с разными данными - числа, даты, названия, суммы (деньги 0,00 руб) и т.д.
можно ли эту таблицу загнать в массив чтоб все данные были строковыми

[vba]
Код
dim MyArr() as string
MyArr=usedrange.value
[/vba] - вылетает в type mismatch

или надо загонять в массив вариант, а потом преобразовывать циклом?

Заранее спасибо за помощь!!!


Век живи - век учись!

Сообщение отредактировал urlchik - Четверг, 06.06.2019, 13:52
 
Ответить
СообщениеЗдравствуйте!
Прошу помочь в вопросе лузеру (т.е. мне)!
есть таблица с разными данными - числа, даты, названия, суммы (деньги 0,00 руб) и т.д.
можно ли эту таблицу загнать в массив чтоб все данные были строковыми

[vba]
Код
dim MyArr() as string
MyArr=usedrange.value
[/vba] - вылетает в type mismatch

или надо загонять в массив вариант, а потом преобразовывать циклом?

Заранее спасибо за помощь!!!

Автор - urlchik
Дата добавления - 06.06.2019 в 10:02
K-SerJC Дата: Пятница, 07.06.2019, 07:56 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 477
Репутация: 84 ±
Замечаний: 0% ±

Excel 2013
так?


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщениетак?

Автор - K-SerJC
Дата добавления - 07.06.2019 в 07:56
_Boroda_ Дата: Пятница, 07.06.2019, 09:34 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15577
Репутация: 6079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Это как раз и есть
или надо загонять в массив вариант, а потом преобразовывать циклом?


Юрий, Вы лучше опишите поподробнее причину возникновения такой хотелки. Зачем Вам это все нужно?
Кстати, если действительно так надо, то не удобнее ли будет сунуть все в массив как есть, а потом преобразовывать данные по мере необходимости?
И да, не совсем ясно как Вам нужно преобразовывать даты. Допустим, у них разные форматы- дата 05.06.19 и дата 5 июнь 2019 года - как тогда нужно?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЭто как раз и есть
или надо загонять в массив вариант, а потом преобразовывать циклом?


Юрий, Вы лучше опишите поподробнее причину возникновения такой хотелки. Зачем Вам это все нужно?
Кстати, если действительно так надо, то не удобнее ли будет сунуть все в массив как есть, а потом преобразовывать данные по мере необходимости?
И да, не совсем ясно как Вам нужно преобразовывать даты. Допустим, у них разные форматы- дата 05.06.19 и дата 5 июнь 2019 года - как тогда нужно?

Автор - _Boroda_
Дата добавления - 07.06.2019 в 09:34
urlchik Дата: Понедельник, 10.06.2019, 08:46 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Зачем Вам это все нужно?

Это нужно для обработки данных вытянутых из разных систем (бухгалтерия) - в одной системе инвентарка в числовом, в другой строкой записана, даты также по в разных форматах и когда начинаешь писать условие, сравнивая, например, инвентарку - не находит совпадений, пока не приведу к общему формату. Приходится заглядывать в Локалс и смотреть в каком формате находятся данные, а так я знаю, что все данные - строковые, сравнивать напрямую, сумма, разность и т.д. с преобразованием в числовой и т.д.
Мне кажется так код писать проще! (или может мне так только кажется?)


Век живи - век учись!
 
Ответить
Сообщение
Зачем Вам это все нужно?

Это нужно для обработки данных вытянутых из разных систем (бухгалтерия) - в одной системе инвентарка в числовом, в другой строкой записана, даты также по в разных форматах и когда начинаешь писать условие, сравнивая, например, инвентарку - не находит совпадений, пока не приведу к общему формату. Приходится заглядывать в Локалс и смотреть в каком формате находятся данные, а так я знаю, что все данные - строковые, сравнивать напрямую, сумма, разность и т.д. с преобразованием в числовой и т.д.
Мне кажется так код писать проще! (или может мне так только кажется?)

Автор - urlchik
Дата добавления - 10.06.2019 в 08:46
_Boroda_ Дата: Понедельник, 10.06.2019, 09:06 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15577
Репутация: 6079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А почему Вы не хотите преобразовывать в момент сравнивания?
Типа
[vba]
Код
if CStr(a(i,1)) = CStr(b(j,1)) then
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА почему Вы не хотите преобразовывать в момент сравнивания?
Типа
[vba]
Код
if CStr(a(i,1)) = CStr(b(j,1)) then
[/vba]

Автор - _Boroda_
Дата добавления - 10.06.2019 в 09:06
urlchik Дата: Понедельник, 10.06.2019, 11:01 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А почему Вы не хотите преобразовывать в момент сравнивания?

Я только познаю VBA. И наткнулся на такую бяку: если значение строковое, то CStr() дает ошибку(не помню какую)! Вот и пришла мысль в голову, здедать массив строковым, а при надобности преобразовывать в нужный формат.
И еще, иногда (не знаю по какой причине) из одной и той же софтины отчет в ексель по конкретному полю кидает то строкой то числом...
Ковырять в софтине не дают...


Век живи - век учись!
 
Ответить
Сообщение
А почему Вы не хотите преобразовывать в момент сравнивания?

Я только познаю VBA. И наткнулся на такую бяку: если значение строковое, то CStr() дает ошибку(не помню какую)! Вот и пришла мысль в голову, здедать массив строковым, а при надобности преобразовывать в нужный формат.
И еще, иногда (не знаю по какой причине) из одной и той же софтины отчет в ексель по конкретному полю кидает то строкой то числом...
Ковырять в софтине не дают...

Автор - urlchik
Дата добавления - 10.06.2019 в 11:01
_Boroda_ Дата: Понедельник, 10.06.2019, 11:05 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15577
Репутация: 6079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ну напишите вместо CStr вот так
[vba]
Код
a(i,1) & ""
[/vba]
На самом деле разговор ни о чем. Нужны конкретные файлы (без конф. инфы), конкретные макросы и описаните конкретных хотелок (по одной на каждую тему)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНу напишите вместо CStr вот так
[vba]
Код
a(i,1) & ""
[/vba]
На самом деле разговор ни о чем. Нужны конкретные файлы (без конф. инфы), конкретные макросы и описаните конкретных хотелок (по одной на каждую тему)

Автор - _Boroda_
Дата добавления - 10.06.2019 в 11:05
urlchik Дата: Понедельник, 10.06.2019, 11:19 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Файлы дать не могу - сб - все отслеживает!
Попробывал загнать в вариант и циклом перегныл все в строку - получилось!

Тему можно закрыть!

Спасибо K-SerJC и всем! Очень хороший форум! И доброго всем здоровья!


Век живи - век учись!
 
Ответить
СообщениеФайлы дать не могу - сб - все отслеживает!
Попробывал загнать в вариант и циклом перегныл все в строку - получилось!

Тему можно закрыть!

Спасибо K-SerJC и всем! Очень хороший форум! И доброго всем здоровья!

Автор - urlchik
Дата добавления - 10.06.2019 в 11:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » тип данных в массиве (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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