Excel VBA-在sheet2中查找字符串并复制到sheet1中

Excel VBA-Find string in sheet2 and copy the this in sheet1

我在 VBA 中寻找一个代码来处理 sheet2 中的字符串(称为 "Setup"),并将 "Setup" 下的字符串复制到单元格 A1 中的 sheet1 中。

我有一个来自录制宏的无效代码:

Sub FindString()

Cells.Find(What:="Setup", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False).Activate

Range("I8").Select
Selection.Copy
Sheets("Tabelle1").Select
ActiveSheet.Paste
End Sub

如果我更改该字符串,它会显示错误 91...

试试这个

Sub FindString()
Sheets("Sheet2").Activate
Cells.Find(What:="Setup", LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False).Activate

ActiveCell.Select
Selection.Copy
Sheets("Sheet1").Select
Range("A1").Select
ActiveSheet.Paste
End Sub

'---------------------------------------- ----------------------------------------

' Specify the string to find in sheet1 B1 cell
Sub FindString2()
Sheets("Sheet2").Activate
Cells.Find(What:=Sheets("Sheet1").Range("B1").Value, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False).Activate

ActiveCell.Select
Selection.Copy
Sheets("Sheet1").Select
Range("A1").Select
ActiveSheet.Paste
End Sub

类似于@Punith 的回答,只是您不需要更换床单。

Option Explicit
Sub find_string()
    Const strLookup As String = "Setup"
    Dim wb As Workbook, find_ws As Worksheet, to_ws As Worksheet, rngFound As Range

    Set wb = ThisWorkbook
    Set find_ws = wb.Sheets("find")
    Set to_ws = wb.Sheets("to")

    Set rngFound = find_ws.Cells.Find(What:=strLookup, LookIn:=xlValues, LookAt:=xlWhole).Offset(1, 0)
    to_ws.Range("A1").Value = rngFound.Value
End Sub