查找单元格并替换为不同的值
Finding cell and replacing with different value
我正在写一个 spreadsheet 来记录查询,一旦查询被处理,想将条目的状态更改为关闭。
目前,在 Sheet 1 上,用户可以输入查询代码并 select 关闭它。然后我想搜索存储所有记录的 Sheet 2 并通过在末尾添加 C 将查询代码更改为关闭。
Private Sub CommandButton8_Click()
Dim Findtext As String
Dim Replacetext As String
ThisWorkbook.Sheets("Sheet 1").Activate
Findtext = Sheets("Sheet 1").Range("C25").Value
Replacetext = Sheets("Sheet 1").Range("E25").Value
ThisWorkbook.Sheets("Sheet 2").Activate
Cells.Replace What:=Findtext, Replacement:=Replacetext, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
C25 是用户输入的代码,E2 当前是 CONCATENATE(C25,"C")
目前,更改是在 sheet 1 而不是 sheet 2 上进行的,我对 VBA 的经验有限,所以假设我一定遗漏了一些东西但不确定它是什么。
您可以简单地使用 Find
方法。
另外,不用.Activate
Private Sub CommandButton8_Click()
Dim Findtext As String
Dim Replacetext As String
Findtext = Sheets("Sheet 1").Range("C25").Value
Replacetext = Sheets("Sheet 1").Range("E25").Value
Dim myCel As Range
With ThisWorkbook.Sheets("Sheet 2").Cells
Set myCel = .Find(What:=Findtext, LookAt:=xlWhole)
myCel.Value = Replacetext
End With
End Sub
试试这个。您不需要激活 sheets,只需添加 sheet 引用如下。
Private Sub CommandButton8_Click()
Dim Findtext As String
Dim Replacetext As String
With Sheets("Sheet 1")
Findtext = .Range("C25").Value
Replacetext = .Range("E25").Value
End With
Sheets("Sheet 2").Cells.Replace What:=Findtext, Replacement:=Replacetext, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
我正在写一个 spreadsheet 来记录查询,一旦查询被处理,想将条目的状态更改为关闭。
目前,在 Sheet 1 上,用户可以输入查询代码并 select 关闭它。然后我想搜索存储所有记录的 Sheet 2 并通过在末尾添加 C 将查询代码更改为关闭。
Private Sub CommandButton8_Click()
Dim Findtext As String
Dim Replacetext As String
ThisWorkbook.Sheets("Sheet 1").Activate
Findtext = Sheets("Sheet 1").Range("C25").Value
Replacetext = Sheets("Sheet 1").Range("E25").Value
ThisWorkbook.Sheets("Sheet 2").Activate
Cells.Replace What:=Findtext, Replacement:=Replacetext, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
C25 是用户输入的代码,E2 当前是 CONCATENATE(C25,"C") 目前,更改是在 sheet 1 而不是 sheet 2 上进行的,我对 VBA 的经验有限,所以假设我一定遗漏了一些东西但不确定它是什么。
您可以简单地使用 Find
方法。
另外,不用.Activate
Private Sub CommandButton8_Click()
Dim Findtext As String
Dim Replacetext As String
Findtext = Sheets("Sheet 1").Range("C25").Value
Replacetext = Sheets("Sheet 1").Range("E25").Value
Dim myCel As Range
With ThisWorkbook.Sheets("Sheet 2").Cells
Set myCel = .Find(What:=Findtext, LookAt:=xlWhole)
myCel.Value = Replacetext
End With
End Sub
试试这个。您不需要激活 sheets,只需添加 sheet 引用如下。
Private Sub CommandButton8_Click()
Dim Findtext As String
Dim Replacetext As String
With Sheets("Sheet 1")
Findtext = .Range("C25").Value
Replacetext = .Range("E25").Value
End With
Sheets("Sheet 2").Cells.Replace What:=Findtext, Replacement:=Replacetext, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub