Макросы в Excel

Squirrel

Active member
Друзья, подскажите пожалуйста. Я знаю что у нас на форуме очень много грамотных людей, по этому если вдруг кто-то что-то подскажет по моей казалось бы дурацкой проблеме, я буду несказанно благодарна и избавлена от кикоза мозга ****************************

Я тут постигаю макросы в Excel, но не в этом суть.
Есть лист с цифрами типа 5.250 - формат ячейки "общий", т.е. Excel как числа их не воспринимает и соответственно математических действий над ними не производит.
Проблема не нова и решается элементарно путем замены на запятую. Правка/заменить - Найти . / Заменить на ,

Но! У меня 50 листов, и я хотела записать макрос и позаменять на всех листах точки на запятые в нужных мне колонках путем нажатия 2-х клавиш. Но когда я записываю все свои действия в макрос - он мне преобразовывает данные на следующем листе в 5 250 - то есть просто убирает точку, и все это число умножается на 100 :wacko:
Я как только не пробовала ... :val:

Ексель 2003, русский. Я вот думаю, может в этом проблема. Хотя я всегда раскладку переключаю на английский ...
В общем, загадка ****************************

Ээээ прицеплю на вский случай код (хоть я в этом пока ничо не понимаю, но чувствую скоро начну **************************** )

Columns("D:E").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
 
Last edited:
ээээ а это куда вписать? Прям так и вписать?
это был вариант сделай ручками :)

ээээ у меня столбики, если что. Два из всех :rom2:

а если хочешь макрос, то видимо надо воспользоваться чем то типа этого
.NumberFormat = "#.###"
 
это был вариант сделай ручками :)
Да я сделаю же, не вопрос. Но я законы написания макросов пока еще не знаю, а если вставить прям как ты написала - оно не работает. Ему всякие слова надо. Здрасьте, да пожалуйста. Вроде "Selection.Replace" "if" "than" "go to" ну и т.д. =)))

а если хочешь макрос, то видимо надо воспользоваться чем то типа этого
.NumberFormat = "#.###"
я пробовала простым методом тупо поменять формат - он не воспринимает с точкой никак. Не считает с точкой, зараза. А в макросе не знает шо такое запятая ... Я чего только не подставляла. Даже знак вопроса попробовала на всякий случай =))))
 
в твоем компьютере
[FONT=&quot]Start->Control Panel->Region and Language ->Additional Settings->Decimal Symbol - поменяй на точку :)[/FONT]
 
в твоем компьютере
[FONT=&quot]Start->Control Panel->Region and Language ->Additional Settings->Decimal Symbol - поменяй на точку :)[/FONT]

Эх! Не работаить.
Происходит удивительное: Данные с точкой (они просто закачаны в таком формате) все равно не преобразовываются не в числовой, ни в денежный ни в какой формат - Excel их тупо текстом распознает, по этому математических действий над ними не производит. Я csv закатывала.
Зато действия по преобразованию начинаются интересней: сначала точку надо таки заменить на запятую (но от этого они теперь в числа не преобразовываются), а потом снова заменить, но уже запятую на точку - тогда Excel начинает уже работать с этими ячейками как с числами. Ну а макрос по прежнему не узнает запятую.
Клиника какая-то! ****************************
 
Sub ProcessWorkBook()

Dim cell
Dim col As String

Set wb = ActiveWorkbook
col = "A"

For i = 1 To wb.Worksheets.Count
Call ProcessSheet(ActiveWorkbook.Worksheets(i), col)
Next i
End Sub

Sub ProcessSheet(ws As Worksheet, col As String)
Dim s_range As String
Dim range As range
Dim str As String

s_range = col + ":" + col
Set range = ws.Columns(s_range)
range.NumberFormat = "0.00"
For i = 1 To range.Cells.Count
Set cell = range.Cells(i, 1)
str = cell
If str <> vbNullString And InStr(str, ".") > 0 Then
cell.FormulaR1C1 = Val(str)
End If Next i
End Sub


Sub ProcessActiveSheet()
ProcessSheet ActiveSheet, "A"
End Sub
 
Last edited:
Белочко, хош дам Ёксель на аглицком? И будет тебе счастье....
 
amadonus - сразу видно программист :)

когда у меня были затыки с числами- делал просто: выделяю таблицу- копировать, открываю новый лист-специальная вставка-вставить значения
 
amadonus - сразу видно программист :)

когда у меня были затыки с числами- делал просто: выделяю таблицу- копировать, открываю новый лист-специальная вставка-вставить значения

это же формат не изменит. здесь надо либо культуру менять на время, либо анг. эксель ставить
 
amadonus респект! *ушла сохранять*

Белочко, хош дам Ёксель на аглицком? И будет тебе счастье....

А кстати давай. Ибо мне файлами обмениваться и с одгрупниками и преподу сдавать. Так что русскому все равно не долго жить в англоязычной стране =))))

Ну и в общем. Тарам-парам!
Большое спасибо, 3 желания! С твоей помощью, я таки победила этот хитрый эксель. Я решила, что раз он не любит запятую, то я сначала точку заменю на английский апостров ' а потом обратно на точку. И оно заработало!!! :brazil:
 
Last edited:
это же формат не изменит. здесь надо либо культуру менять на время, либо анг. эксель ставить

С английским экселем понятно. Я полностью солидарна! :)
А вот культуру на время - это Вы что подразумевали? :)
 
это же формат не изменит. здесь надо либо культуру менять на время, либо анг. эксель ставить
Может быть, спорить не буду. У меня кстати офис русский, если я ввожу цифры с разделителем запятая то эксель их не складывает, если делаю Правка- Заменить.. - запятую на точку и заменить все, строки чудым образом становятся числами и их можно складывать.
Вспомнил: проблема может быть когда ячейки содержат невидимые пробелы. Нужно заменить пробелы на ничего.
 
А кстати давай. Ибо мне файлами обмениваться и с одгрупниками и преподу сдавать. Так что русскому все равно не долго жить в англоязычной стране =))))

прививаем-прививаем тебе культуру пользования лицензионным софтом :)
Фотошоп то победила?

попробуй OpenOffice :)
 
прививаем-прививаем тебе культуру пользования лицензионным софтом :)
Фотошоп то победила?

попробуй OpenOffice :)
А вы прививайте, прививайте! =)))
Фотошоп неть, но за програмулину спасибо огромное! Только она у меня не пошла (у меня виста), но я ее успешно нашла по названию и скачала из инета, так что можно было с флешкой не расставаться, а просто кинуть название.
Кстати, как на счет в следующий пн пообедать? :)

ЗЫ: Про OpenOffice не поняла - его в куда пробовать? =)))))
 
прививаем-прививаем тебе культуру пользования лицензионным софтом :)
Фотошоп то победила?

попробуй OpenOffice :)
Еще одна головная боль... Надо пользоваться софтом, который денег стоит! :lol:
 
А вы прививайте, прививайте! =)))
Фотошоп неть, но за програмулину спасибо огромное! Только она у меня не пошла (у меня виста), но я ее успешно нашла по названию и скачала из инета, так что можно было с флешкой не расставаться, а просто кинуть название.
Кстати, как на счет в следующий пн пообедать? :)

ЗЫ: Про OpenOffice не поняла - его в куда пробовать? =)))))
Open Office - это вместо MS Office. Скачиваешь и ставишь :) Он типа open sourсe ;)

насчет обеду - давайте в фейсбуке спишемся :)
 
Еще одна головная боль... Надо пользоваться софтом, который денег стоит! :lol:
нада. Вы белочке Эксель с лицензией собирались дать? - тогда сории!
 
Back
Top