Excel VBA selection.replace 并且如果被替换,则将文本放在被替换行的 a 列中

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5026423/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 11:09:36  来源:igfitidea点击:

Excel VBA selection.replace and if replaced put text in column a of the replaced row

excelvba

提问by FLY

I have some macro like:

我有一些宏,如:

Columns("F:M").Select
Selection.Replace What:=",", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
    ReplaceFormat:=False

But i want to put the current date (or even just a string of text) to be put in cell A of the row where a replace occurred.

但我想将当前日期(甚至只是一串文本)放入发生替换的行的单元格 A 中。

采纳答案by jswolf19

I imagine you will need to change your replace to a find and replace. Something like:

我想您需要将替换更改为查找和替换。就像是:

Dim c As Range
Columns("F:M").Select
Set c = Selection.Find(What:=",", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False)
If Not c Is Nothing Then
    Do
        c.Replace What:=",", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
            ReplaceFormat:=False
        Cells(c.Row, 1).Value = Date
        Set c = Selection.FindNext(c)
    Loop While Not c Is Nothing
End If