Excel 2010 宏查找和替换

Excel 2010 宏查找和替换

我在一本工作簿中有多个工作表。我关注的工作表是 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

好吧,看来我已经找到答案了,我想分享一下。感谢@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

每个向上/向下宏中都有一些额外功能。即删除某个单元格的内容,并复制另一个单元格的值。

相关内容