Macro do Excel 2010 para localizar e substituir

0

Eu tenho várias planilhas em um único livro de trabalho. As fichas de trabalho em que estou preocupado são WD, Hit, Sam, Sea e Max. Cada página usa o mesmo modelo exato, então tudo deve corresponder ...

Aqui está a pergunta. Em certas células da minha página principal (-Listings-), tenho fórmulas para extrair informações de outra página. Gostaria de criar uma macro que leia a célula O1 e procure A1: AA12 e substitua-a pela nova. Exemplo: A célula C9 tem = (WD! B3) E9 tem = (WD! C3) ..... etc

Código que estou usando

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

Isso muda minhas fórmulas para a planilha da Seagate. Eu não sei como pesquisar apenas alguns intervalos, então eu preciso de ajuda com isso também.

Eu imaginei que usaria 5 Macros. Um para cada nome de folha para o qual as fórmulas devem ser convertidas. Eu sei que não tenho que adicionar a parte extra no meu código para selecionar O1 e colocar o nome nele, considerando o find & substituir faria isso por mim.

Se as macros que eu uso pudessem mudar também, isso seria ótimo. Isso é prolífico para outra pergunta, mas vou adicioná-lo aqui também.

Eu uso essas macros como botões para mudar para o próximo inventário a ser listado no meu log. Eles estão definidos para ir para a planilha "WD", ir para a próxima célula para cima / baixo e voltar para a minha página de inventário. Estas são as únicas macros que precisam ser alteradas junto com as fórmulas na minha página de listagens.

Acima

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

Down

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
    
por Ryan Hubbard 28.07.2015 / 16:52

1 resposta

0

Bem, parece que eu tenho a resposta e gostaria de compartilhá-la. Obrigado ao anúncio @nixda eu mesmo.

Aqui está meu módulo 7. Isso altera as fórmulas e altera as setas para cima / para baixo na página que eu uso.

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

Há alguns extras em cada macro para cima / para baixo. Isso é apagar o conteúdo de uma determinada célula e copiar o valor de outra.

    
por 29.07.2015 / 17:57