Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2011, 16:26   #1
Olper
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 87
По умолчанию Типы данных

Уважаемые Гуру и просто любители!
Тока плиз, не смейтесь заранее, но проблема в следующем.
Дело в том, что есть базовая таблица, где данный столбец как Символьный, и поступает куча мелких файлов, которые необходимо связать, в которых тот же столбец может быть и текстовых и числовым.
Функции ВПР, ИНДЕКС+ПОИСКПОЗ и др. работают тока со значениями одного типа, но как подогнать типы к единому... как можно преобразовать допустим число в текст, когда таких зачений сотни (не ставить же ' пред каждым числом). Формат столбца типа строковый не помогает, строку в число преобразовываю легко (умножением на 1), а вот как число в строковую....??? засада.
Буду рад любой идее.
Olper вне форума Ответить с цитированием
Старый 07.12.2011, 16:30   #2
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Упомянутые функции могут работать со значениями разных типов.
Но без примера... Даже смеяться не над чем
vikttur вне форума Ответить с цитированием
Старый 07.12.2011, 16:34   #3
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Может, так как-то:
Код:
Sub ert()
Dim x
With Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    x = .Value: .NumberFormat = "@": .Value = x
End With
End Sub
nilem вне форума Ответить с цитированием
Старый 07.12.2011, 17:03   #4
Olper
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от vikttur Посмотреть сообщение
Упомянутые функции могут работать со значениями разных типов.
Работают, да с разными типами, но при поиске значения должны быть одного типа, либо текст и там и там, либо число. Т.е. если в одном файле 123 - число, в другом 123 текст, то выдает #Н/Д
Olper вне форума Ответить с цитированием
Старый 07.12.2011, 17:07   #5
Olper
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 87
По умолчанию

nilem, а твой код как я понял, преобразовывает число в текст?, что в принципе и надо или...
Olper вне форума Ответить с цитированием
Старый 07.12.2011, 17:17   #6
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Цитата:
Сообщение от Olper Посмотреть сообщение
nilem, а твой код как я понял, преобразовывает число в текст?
Так и есть. Вернее, перезаписывает данные, устанавливая при перезаписи текстовый формат.
nilem вне форума Ответить с цитированием
Старый 07.12.2011, 17:20   #7
Olper
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 87
По умолчанию

Гуд, сегодня поздно, завтра попробоваю, обязательно отпишусь
Olper вне форума Ответить с цитированием
Старый 07.12.2011, 18:10   #8
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Цитата:
Сообщение от Olper Посмотреть сообщение
Работают, да с разными типами, но при поиске значения должны быть одного типа, либо текст и там и там, либо число. Т.е. если в одном файле 123 - число, в другом 123 текст, то выдает #Н/Д
Пример зажали?
vikttur вне форума Ответить с цитированием
Старый 07.12.2011, 18:17   #9
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от nilem Посмотреть сообщение
nilem, а твой код как я понял, преобразовывает число в текст? - Так и есть. Вернее, перезаписывает данные, устанавливая при перезаписи текстовый формат.
Нифига он не преобразовывает. Это легко проверить с помощью функции ЕЧИСЛО или по наличию зеленых треугольничков в 2007.
Код:
Sub ert1()
Dim x As Range
With Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
'    .NumberFormat = "@" 'необязательно
    For Each x In .Cells
        x.Value = x.Value & "" 'или =CStr(x.Value)
    Next
End With
End Sub
или
Код:
Sub ert2()
Dim x
x = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:A" & x).Value = Evaluate("A1:A" & x & "&""""")
End Sub
Вложения
Тип файла: rar Втекст.rar (7.2 Кб, 9 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 07.12.2011 в 22:51.
Казанский вне форума Ответить с цитированием
Старый 08.12.2011, 00:51   #10
Olper
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от vikttur Посмотреть сообщение
Пример зажали?
Vikttur, обязательно скомпаную и вышлю (просто там несколько файлов и очень больших), но для тя...сделаю
Olper вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
типы данных sp@ker Общие вопросы Delphi 8 26.04.2011 20:48
типы данных. svoi92 Помощь студентам 2 10.02.2011 13:45
Типы данных С++ werser Помощь студентам 1 13.03.2010 18:34
Типы данных psycho-coder Паскаль, Turbo Pascal, PascalABC.NET 6 04.02.2010 20:03