【问题标题】:Finding cell and replacing with different value查找单元格并用不同的值替换
【发布时间】:2018-08-16 15:48:54
【问题描述】:

我正在编写一个电子表格来记录查询,一旦查询已处理,我想将条目的状态更改为已关闭。

目前,在工作表 1 上,用户可以输入查询代码并选择关闭它。然后,我想搜索存储所有记录的 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") 目前,正在对表 1 而不是表 2 进行更改,我对 VBA 的经验有限,所以假设我一定遗漏了一些东西,但不确定它是什么。

【问题讨论】:

  • 你可以用 Findtext & "C" 替换
  • 也许还有 Sheet1?

标签: vba excel findandmodify


【解决方案1】:

试试这个。您无需激活工作表,只需添加工作表引用,如下所示。

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

【讨论】:

    【解决方案2】:

    您可以简单地使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-05
      • 2023-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 2021-04-22
      相关资源
      最近更新 更多