Мурад
Дата: Понедельник, 16.01.2023, 11:39 |
Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
Добрый день, форумчане! Помогите найти ошибку в макросе, который находится в файле в самой книге. Написал макрос, который должен сортировать поле Выплаты по возрастанию. Для этого числовые значения, представленные как текст, необходимо предварительно обработать. Ошибка возникает в части макроса, который должен заменить пробелы и прочие символы в числах на "Пусто". Остальной код должен отработать штатно.
Добрый день, форумчане! Помогите найти ошибку в макросе, который находится в файле в самой книге. Написал макрос, который должен сортировать поле Выплаты по возрастанию. Для этого числовые значения, представленные как текст, необходимо предварительно обработать. Ошибка возникает в части макроса, который должен заменить пробелы и прочие символы в числах на "Пусто". Остальной код должен отработать штатно. Мурад
К сообщению приложен файл:
test.xlsm
(38.7 Kb)
Ответить
Сообщение Добрый день, форумчане! Помогите найти ошибку в макросе, который находится в файле в самой книге. Написал макрос, который должен сортировать поле Выплаты по возрастанию. Для этого числовые значения, представленные как текст, необходимо предварительно обработать. Ошибка возникает в части макроса, который должен заменить пробелы и прочие символы в числах на "Пусто". Остальной код должен отработать штатно. Автор - Мурад Дата добавления - 16.01.2023 в 11:39
Мурад
Дата: Понедельник, 16.01.2023, 15:18 |
Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
18
±
Замечаний:
0% ±
Excel 2007
Заменил часть кода:
[vba]
Код
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 For Each rng In Selection.Areas rng.FormulaLocal = rng.FormulaLocal Next rng Selection.NumberFormat = "#,##0.00" Range("A25:AG25", Range("A25:AG25").End(xlDown)).Select ActiveWorkbook.Worksheets(1).Sort.SortFields. _ Clear ActiveWorkbook.Worksheets(1).Sort.SortFields. _ Add2 Key:=Range("AG25", Range("AG25").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending _ , DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(1).Sort .SetRange Range("A25:AG25", Range("A25:AG25").End(xlDown)) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
[/vba]
на:
[vba]
Код
Selection.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False For Each rng In Selection.Areas rng.FormulaLocal = rng.FormulaLocal Next rng Selection.FormulaLocal = Selection.FormulaLocal Selection.NumberFormat = "#,##0.00" Range("A25:AG25", Range("A25:AG25").End(xlDown)).Select Selection.Sort key1:=Range("AG25", Range("AG25").End(xlDown)), _ order1:=xlAscending, Header:=xlNo
[/vba]
и все заработало
Заменил часть кода:
[vba]
Код
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 For Each rng In Selection.Areas rng.FormulaLocal = rng.FormulaLocal Next rng Selection.NumberFormat = "#,##0.00" Range("A25:AG25", Range("A25:AG25").End(xlDown)).Select ActiveWorkbook.Worksheets(1).Sort.SortFields. _ Clear ActiveWorkbook.Worksheets(1).Sort.SortFields. _ Add2 Key:=Range("AG25", Range("AG25").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending _ , DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(1).Sort .SetRange Range("A25:AG25", Range("A25:AG25").End(xlDown)) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
[/vba]
на:
[vba]
Код
Selection.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False For Each rng In Selection.Areas rng.FormulaLocal = rng.FormulaLocal Next rng Selection.FormulaLocal = Selection.FormulaLocal Selection.NumberFormat = "#,##0.00" Range("A25:AG25", Range("A25:AG25").End(xlDown)).Select Selection.Sort key1:=Range("AG25", Range("AG25").End(xlDown)), _ order1:=xlAscending, Header:=xlNo
[/vba]
и все заработало Мурад
Сообщение отредактировал Мурад - Понедельник, 16.01.2023, 15:19
Ответить
Сообщение Заменил часть кода:
[vba]
Код
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 For Each rng In Selection.Areas rng.FormulaLocal = rng.FormulaLocal Next rng Selection.NumberFormat = "#,##0.00" Range("A25:AG25", Range("A25:AG25").End(xlDown)).Select ActiveWorkbook.Worksheets(1).Sort.SortFields. _ Clear ActiveWorkbook.Worksheets(1).Sort.SortFields. _ Add2 Key:=Range("AG25", Range("AG25").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending _ , DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(1).Sort .SetRange Range("A25:AG25", Range("A25:AG25").End(xlDown)) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
[/vba]
на:
[vba]
Код
Selection.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False For Each rng In Selection.Areas rng.FormulaLocal = rng.FormulaLocal Next rng Selection.FormulaLocal = Selection.FormulaLocal Selection.NumberFormat = "#,##0.00" Range("A25:AG25", Range("A25:AG25").End(xlDown)).Select Selection.Sort key1:=Range("AG25", Range("AG25").End(xlDown)), _ order1:=xlAscending, Header:=xlNo
[/vba]
и все заработало Автор - Мурад Дата добавления - 16.01.2023 в 15:18