У меня есть несколько рабочих листов в одной рабочей книге. Рабочие листы, которые меня интересуют: WD, Hit, Sam, Sea и Max. Каждая страница использует один и тот же шаблон, поэтому все должно совпадать ...

Вот вопрос. В некоторых ячейках моей главной страницы (-Listings-) у меня есть формулы для получения информации с другой страницы. Я хотел бы создать макрос, который будет читать ячейку O1 и искать A1:AA12, и заменить его новым листом. Пример: ячейка C9 имеет = (WD!B3) E9 имеет = (WD!C3) ..... и т.д.

Код я использую

Sub FindNReplace1()
'
' FindNReplace Macro
'

'
Cells.Replace What:=O1, Replacement:="Sea", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

        Range("O1").Select
ActiveCell.FormulaR1C1 = "Sea"
End Sub

Это меняет мои формулы на лист Seagate. Я не знаю, как искать только определенные диапазоны, поэтому мне тоже понадобится помощь.

Я подумал, что я бы использовал 5 макросов. По одному на каждое имя листа, в который нужно преобразовать формулы. Я знаю, что мне не нужно добавлять дополнительную часть в мой код, чтобы выбрать O1 и вставить в него имя, учитывая, что поиск и замена сделают это для меня.

Если бы используемые мной макросы также могли переключаться, это было бы здорово. Это совсем другой вопрос, но я добавлю его и здесь.

Я использую эти макросы в качестве кнопок, чтобы перейти к следующему элементу инвентаря, который будет внесен в мой журнал. Они настроены для перехода на лист "WD", перехода к следующей ячейке вверх / вниз и возврата на страницу моего инвентаря. Это единственные макросы, которые нужно будет изменить вместе с формулами на моей странице списков.

вверх

Sub autoup()
'
' autoup Macro
'

'
Sheets("WD").Select
Selection.Offset(-1, 0).Select
Sheets("-LISTINGS-").Select

Range("H11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""

 Range("F9").Select
Selection.Copy
End Sub

вниз

Sub autodown()
'
' autodown Macro
'

'
Sheets("WD").Select
Selection.Offset(1, 0).Select
Sheets("-LISTINGS-").Select

    Range("H11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""

 Range("F9").Select
Selection.Copy
End Sub

1 ответ1

0

Ну, кажется, что у меня есть ответ, и я хотел бы поделиться им. Спасибо @nixda ad себя.

Вот мой модуль 7. Это изменяет формулы и изменяет стрелки вверх / вниз на странице, которую я использую.

Sub FindAndReplaceWD()
Sheets("-LISTINGS-").Range("A1:AA12").Replace What:=Sheets("-LISTINGS-").Range("O1"), Replacement:="WD", LookAt:=xlPart
  ActiveSheet.Shapes.Range(Array("Button 42")).Select
Selection.OnAction = "autoUpWD"
    ActiveSheet.Shapes.Range(Array("Button 43")).Select
Selection.OnAction = "autodownWD"
End Sub

Sub FindAndReplaceSea()
Sheets("-LISTINGS-").Range("A1:AA12").Replace What:=Sheets("-LISTINGS-").Range("O1"), Replacement:="Sea", LookAt:=xlPart
    ActiveSheet.Shapes.Range(Array("Button 42")).Select
Selection.OnAction = "autoUpSea"
    ActiveSheet.Shapes.Range(Array("Button 43")).Select
Selection.OnAction = "autodownSea"
End Sub

Sub FindAndReplaceHit()
Sheets("-LISTINGS-").Range("A1:AA12").Replace What:=Sheets("-LISTINGS-").Range("O1"), Replacement:="Hit", LookAt:=xlPart
    ActiveSheet.Shapes.Range(Array("Button 42")).Select
Selection.OnAction = "autoUpHit"
    ActiveSheet.Shapes.Range(Array("Button 43")).Select
Selection.OnAction = "autodownHit"
End Sub

Sub FindAndReplaceSam()
Sheets("-LISTINGS-").Range("A1:AA12").Replace What:=Sheets("-LISTINGS-").Range("O1"), Replacement:="Sam", LookAt:=xlPart
    ActiveSheet.Shapes.Range(Array("Button 42")).Select
Selection.OnAction = "autoUpSam"
    ActiveSheet.Shapes.Range(Array("Button 43")).Select
Selection.OnAction = "autodownSam"
End Sub

Sub FindAndReplaceMax()
Sheets("-LISTINGS-").Range("A1:AA12").Replace What:=Sheets("-LISTINGS-   ").Range("O1"), Replacement:="Max", LookAt:=xlPart
    ActiveSheet.Shapes.Range(Array("Button 42")).Select
Selection.OnAction = "autoUpMax"
    ActiveSheet.Shapes.Range(Array("Button 43")).Select
Selection.OnAction = "autodownMax"
End Sub

Sub autoupWD()
Sheets("WD").Select
Selection.Offset(-1, 0).Select
Sheets("-LISTINGS-").Select

Range("H11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""

 Range("F9").Select
Selection.Copy
End Sub

Sub autodownWD()
Sheets("WD").Select
Selection.Offset(1, 0).Select
Sheets("-LISTINGS-").Select

    Range("H11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""

 Range("F9").Select
Selection.Copy
End Sub

Sub autoupSea()
Sheets("Sea").Select
Selection.Offset(-1, 0).Select
Sheets("-LISTINGS-").Select

Range("H11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""

 Range("F9").Select
Selection.Copy
End Sub

Sub autodownSea()
Sheets("Sea").Select
Selection.Offset(1, 0).Select
Sheets("-LISTINGS-").Select

    Range("H11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""

 Range("F9").Select
Selection.Copy
End Sub

Sub autoupSam()
Sheets("Sam").Select
Selection.Offset(-1, 0).Select
Sheets("-LISTINGS-").Select

Range("H11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""

 Range("F9").Select
Selection.Copy
End Sub

Sub autodownSam()
Sheets("Sam").Select
Selection.Offset(1, 0).Select
Sheets("-LISTINGS-").Select

    Range("H11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""

 Range("F9").Select
Selection.Copy
End Sub
Sub autoupMax()
Sheets("Max").Select
Selection.Offset(-1, 0).Select
Sheets("-LISTINGS-").Select

Range("H11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""

 Range("F9").Select
Selection.Copy
End Sub

Sub autodownMax()
Sheets("Max").Select
Selection.Offset(1, 0).Select
Sheets("-LISTINGS-").Select

    Range("H11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""

 Range("F9").Select
Selection.Copy
End Sub

В каждом макросе вверх / вниз есть кое-что дополнительное. Это для того, чтобы стереть содержимое одной ячейки и скопировать значение другой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .