VBA в Excel

S.F.W.

Местный
Регистрация
16 Апр 2004
Сообщения
178
Реакции
118
Credits
0
Кстати в ту же тему кому надо
выполнение макросов перед закрытием
Private Sub Workbook_BeforeClose(Cancel as Boolean)
End sub
 

Wern

Турист
Регистрация
10 Янв 2007
Сообщения
21
Реакции
2
Credits
42
В справке по VBA можно все найти.
 

S.F.W.

Местный
Регистрация
16 Апр 2004
Сообщения
178
Реакции
118
Credits
0
Может кто сталкивался, я просто замучался уже.
Делаю импорт таблицы с курсами из инета, но там все данные с точкой,
к примеру
5.05
6.35
0.19
и т.д.

Когда заменяю в таблице руками через CTRL + H - то точка на запятую меняется нормально - когда пробую через макрос, который записывается при этих действиях получается полная белиберда
5,05
65 352,00
99 251,00
0,1901
34 006,00
17 462,00
0,4651
13 466,00


то есть он мне меняет знак и курс превращается в космическую цифру.

текст макроса такой
Columns("F:F").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
Кто нибудь может сказать что я делаю не так ?
 

ploki

Местный
Регистрация
16 Май 2005
Сообщения
237
Реакции
180
Credits
0
Для точного ответа на вопрос "Что не так?" информации не достаточно.
Но несколько соображений:
1. Надо посмотреть формат ячеек этого столбца и General или Number поменять на Text. Только потом делать замены.

2. Для вставки крупных кусков данных лучше использовать мастер импорта внешних данных (Data -> From Web или сначала сохранить в .txt, а потом Data -> From Text).

3. Если уж использовать VBA, то там есть прекрасная функция Replace: Function Replace(Expression As String, Find As String, Replace As String, [Start As Long = 1], [Count As Long = -1], [Compare As VbCompareMethod = vbBinaryCompare]) As String. Применять лучше к каждой ячейке выделения через промежуточную переменную типа String.
 
Последнее редактирование модератором: