powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / В колонке и текст, и число
10 сообщений из 10, страница 1 из 1
В колонке и текст, и число
    #39328360
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Выгружаю таблицу из листа в массив. В первой колонке есть и текстовые значения, и числа. Первая колонка по существу это текст. Вторая - число.

Как сделать так, чтобы массив первую колонку воспринимал как текст?
...
Рейтинг: 0 / 0
В колонке и текст, и число
    #39328361
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
В колонке и текст, и число
    #39328366
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут еще странное преобразование. При переводе в текст в начале добавляет пробел. Почему так?
...
Рейтинг: 0 / 0
В колонке и текст, и число
    #39328374
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkТут еще странное преобразование. При переводе в текст в начале добавляет пробел. Почему так?Так работает Str - резервирует место под знак. Если нет работы с десятичным разделителем, можно использовать CStr
...
Рейтинг: 0 / 0
В колонке и текст, и число
    #39328575
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ferzmikkКак сделать так, чтобы массив первую колонку воспринимал как текст?
Можно пробежаться циклом по массиву
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub Макрос()
Dim Таблица(), i&
  Таблица = Sheets(1).Range(Sheets(1).Cells(2, 1), Sheets(1).Cells(17, 2)).Value
  For i = 1 To UBound(Таблица)
    Таблица(i, 1) = CStr(Таблица(i, 1))
  Next
End Sub
...
Рейтинг: 0 / 0
В колонке и текст, и число
    #39328580
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или в одно действие
Код: vbnet
1.
  Таблица = Evaluate("CHOOSE({1,2},A2:A17&"""",B2:B17)")

или лучше
Код: vbnet
1.
  Таблица = Evaluate(Application.ConvertFormula("CHOOSE({1,2},R2C1:R17C1&"""",R2C2:R17C2)", xlR1C1, Application.ReferenceStyle))

В формулу в стиле R1C1 проще подставлять номера строк и столбцов.
...
Рейтинг: 0 / 0
В колонке и текст, и число
    #39328600
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkКак сделать так, чтобы массив первую колонку воспринимал как текст?
Попытка принудительно заставить Variant формировать не самый подходящий значению тип - это "желать странного". Впрочем, как и желание, чтобы все элементы типа Variant имели один и тот же субтип.

Принудительно же проще всего это сделать предварительной операцией добавления одинарной кавычки в начало Value ячеек колонки, кою необходимо интерпретировать как текст. Тогда получишь именно желаемое, а кавычка в значение не попадёт.
...
Рейтинг: 0 / 0
В колонке и текст, и число
    #39328653
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, получилось!
...
Рейтинг: 0 / 0
В колонке и текст, и число
    #39328655
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если скажем таблица на листе имеет колонки с разными типами данными: текст, длинное целое число, короткое целое число, число с десятичной записью, дата, время, дата и время. В колонке с текстом есть ячейки и как текст, и как число, как описано в данном теме. Возможно ли задать такой массив, где каждая колонка имеет свой тип? Или лучше создать объект в классе модуле, и каждый объект толкать в одномерный массив? Или ListObject, ListRow, ListColumn, Collection, ArrayList и т. д.? Часто бывает, что есть таблица на листе, которая имеет подключение, и оттуда надо вытаскивать данные и толкать, например, в массив.
...
Рейтинг: 0 / 0
В колонке и текст, и число
    #39328800
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По типу "ассоциативного массива"? Я не в курсе, скорее всего суррогаты вида
DIM aa Array( Array(1:9), Array(1:4))
через свой Type
через Collection
через Variant

Пусть знатоки подтянутся или в поиск "vba ассоциативный массив".
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / В колонке и текст, и число
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]