Страницы: 1
RSS
проблема с STR()
 
Здравствуйте.  
в первом столбце таблице артикулы(цыфры в текстовом формате), во второй столбец макрос преобразует эти артикулы в числа с помощью STR:  
For x = 2 To 10  
   Cells(x, 2) = str(Cells(x, 1))  
Next  
в третий столбец вписываются наименования через смещ(поискпоз()).  
проблема в том, что в артикулах попадаются не только числа, но и буквы. появляется ошибка. если не преобразовывать через str, то смещ(поискпоз()) выдаёт #Н/Д... изменение фориата на числовой не помогает. как обойти эту ошибку? можно как-то посмотреть есть ли в ячейки буквы и если есть то просто скопировать, а если нет, то скопировать с str???
 
Попробуйте так:  
 
   For x = 2 To 10  
       Cells(x, 2) = Val(Cells(x, 1))  
   Next  
 
 
А лучше - так: [b2:b10].Value = [a2:a10].Value
 
 
Можно не копировать в соседний столбец, а преобразовать текст в значения прямо в столбце A:  
 
Sub test2()  
   [a2:a10].NumberFormat = "General"
   [a2:a10].Value = [a2:a10].Value
End Sub
 
Что-то я не то написал... неправильно понял задачу  
 
Можно взглянуть на пример файла с артикулами?  
 
Попробуйте вместо STR функцию CStr:  
 
   For x = 2 To 10  
       Cells(x, 2) = CStr(Cells(x, 1))  
   Next
 
Спасибо! получилосm с CSTR()  
если преобразовывать формат в общий, то получалось только если открыть  и закрыть ячейку для правки.
 
{quote}{login=The_Prist}{date=09.10.2009 01:13}{thema=}{post}Не понял..."в первом столбце таблице артикулы(цыфры в текстовом формате), во второй столбец макрос преобразует эти артикулы в числа с помощью STR"    
А функция Str разьве в цифры преобразовывает?  
For x = 2 To 10  
If IsNumeris(Cells(x, 2)) Then Cells(x, 2) = CStr(Cells(x, 1)) Else Cells(x, 2) = Cells(x, 1)  
Next{/post}{/quote}  
 
я не знаю что именно делает Str и CStr, но работает:)
Страницы: 1
Читают тему
Наверх