find一个单元格,并在Excel中更改其值

感谢您花时间阅读我的问题,我不是一个程序员,我希望我能在这里得到一些帮助。

我想find一个范围内的细胞,并改变它的价值。

例如,范围A1:A20,如果“销售”在那里(如使用Vlookup或其他) – 然后将其值更改为“销售Q1”或任何其他我指定的。

我感谢大家的帮助和时间

有点老,但我已经增加了一点,使其发现的价值,就像string。 所以例如,如果我正在寻找Sales1或sales222,那么我会用通配符。

  Dim ws As Worksheet For Each ws In Sheets For i = 1 To 20 If LCase(ws.Cells(i, 1)) Like "sales*" Then 'ensure the search value is lowercase ws.Cells(i, 1) = "Sales Q1" End If Next Next ws 

根据以前答案的代码:

 Sub AnyNameYouLike() For i = 1 To 20 If SheetName.Cells(i, 1) Like "*Sales*" Then SheetName.Cells(i, 1) = "Sales Q1" End If Next End Sub 

引用单元格的调用是: SheetName.Cells(rowNumber, columnNumber) 。 这是,列A变成列1,列C是列3,依此类推。

SheetName不是您在Excel的选项卡中看到的工作表名称。 是你在左边的VBEditor中看到的名字。 在Excel中看到的工作表的名称在圆括号之间。

for指令执行For指令和Next指令之间的行次数,每次都用不同的数字代替(第一次是1,第二次是2,最后一次)与20)。

Like指令允许你进行你不会用的匹配=*表示任何东西,所以如果您使用"*Sales*"表示您想要匹配任何包含0或某些字符的单元格,然后是Sales ,然后是0个或多个字符。 例如,您可以使用"Sales*"来匹配以Sales开头的单元格。

 Sub replace_sales() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets For i = 1 To 20 If ws.Cells(i, 1) = "Sales" Then ws.Cells(i, 1) = "Sales Q1" End If Next Next ws End Sub 

难道你不能简单地使用Ctrl + H.顺便说一下,这段代码现在将在活动工作簿的每个工作簿中将“销售”replace为“销售Q1” – 代码将在行1-20和列1中查找销售。