Страницы: 1
RSS
После применения макроса пропадают формулы
 
Ребят применяю макрос на странице по замене запятой на точку и все буквы делаю прописные. Всё работает как надо,но при клике на ячейку пропадает формула. Как её вернуть? Вот код, за написание которого огромное спасибо Казанскому.
Код
1
2
3
4
5
Sub bb()
With ActiveSheet.UsedRange
  .Value = Evaluate("INDEX(UPPER(SUBSTITUTE(" & .Address & ","","",""."")),)")
End With
End Sub
 
Сменил. Надеюсь теперь вы мне поможете.
 
Цитата
rvv2vvr написал: но при клике на ячейку пропадает формула.
Мы Вашей ячейки не видели.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Так этот макрос заменяет формулы значениями, - неудивительно, что формулы пропадают...
 
1.xlsx до изменений. 2.xlsx после. До применения макрос при нажатии на ячейку B2 видим в строке формулы "=E2", а после применения "IJITSU 1152 13X5.5 4X98 D58.6 ET35 BP / ЧЕРНЫЙ С ПОЛИРОВКОЙ". Мне бы хотелось чтобы там была формула, как в первом случае.
 
Замените
Код
1
2
3
With ActiveSheet.UsedRange
  .Value = Evaluate("INDEX(UPPER(SUBSTITUTE(" & .Address & ","","",""."")),)")
End With

На
Код
1
2
3
With ActiveSheet.UsedRange
  .Formula (или FormulaR1C1) = Application.WorksheetFunction.INDEX и т.д
End With
 
Напишите полностью пожалуйста как надо, а то я не понимаю "и т.д."
 
Код
1
2
3
4
5
6
Sub bb()
Dim ccc As Range
For Each ccc IN ActiveSheet.UsedRange
  ccc.FormulaR1C1 = Replace(ccc.FormulaR1C1,",",".")
Next ccc
End Sub
Изменено: TheBestOfTheBest - 20.10.2015 15:24:45
Неизлечимых болезней нет, есть неизлечимые люди.
 
Код
1
2
3
4
5
6
7
8
9
10
11
Sub jjj()
Dim rng As Range
    On Error Resume Next
    Set rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
    On Error GoTo 0
    If Not rng Is Nothing Then
        Application.FindFormat.Clear
        rng.Replace What:=",", Replacement:=".", LookAt:=xlPart, SearchOrder:=xlByRows, _
            MatchCase:=False, MatchByte:=False
    End If
End Sub

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
TheBestOfTheBest , пишет Run-time error "13"
 
Цитата
Андрей Гайкевич написал: Пишет Run-time error "13"
Поправлено.
Неизлечимых болезней нет, есть неизлечимые люди.
 
Ошибка 1004
 
Андрей Гайкевич, перестаньте копировать целые собщения! Кнопка цитирования не для ответа.

Спасибо всё работает. Но мне ещё надо чтобы все буквы были прописными.
 
Цитата
Андрей Гайкевич написал:
Ошибка 1004
Странно....
Неизлечимых болезней нет, есть неизлечимые люди.
 
А, ну, да.
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub jjj() ' _
Dim rng As Range, cl As Range
    On Error Resume Next
    Set rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
    On Error GoTo 0
    If Not rng Is Nothing Then
        Application.FindFormat.Clear
        rng.Replace What:=",", Replacement:=".", LookAt:=xlPart, SearchOrder:=xlByRows, _
            MatchCase:=False, MatchByte:=False
        For Each cl In rng
            cl.Value = UCase(cl.Value)
        Next cl
    End If
End Sub

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan,Огромное спасибо. Всё работает. Только я 2-ю строчку удалил.
 
А ответьте пожалуйста. Можно прописные буквы делать во всех столбцах, кроме, например: M
 
В этой теме - нельзя. Вопрос не по теме.
Страницы: 1
Читают тему
Наверх
Loading...