Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在Excel中查找单元格并更改其值_Vba_Excel - Fatal编程技术网

Vba 在Excel中查找单元格并更改其值

Vba 在Excel中查找单元格并更改其值,vba,excel,Vba,Excel,谢谢你花时间阅读我的问题,我不是程序员,我希望我能在这里得到一些帮助 我想在一个范围内找到一个单元格并更改它的值 例如,范围A1:A20,如果其中有“Sales”(比如使用Vlookup或其他东西),则将其值更改为“Sales Q1”或我指定的任何其他值 我感谢大家的帮助和时间 Sub replace_sales() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets For i = 1 To 20 If ws.Cell

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

我想在一个范围内找到一个单元格并更改它的值

例如,范围A1:A20,如果其中有“Sales”(比如使用Vlookup或其他东西),则将其值更改为“Sales Q1”或我指定的任何其他值

我感谢大家的帮助和时间

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吗。
顺便说一句,此代码现在将在活动工作簿的每一页中将“Sales”替换为“Sales Q1”-代码将在第1-20行和第1列中查找Sales。

基于前面答案中的代码:

Sub AnyNameYouLike()
对于i=1到20
如果SheetName.Cells(i,1)像“*Sales*”那么
SheetName.Cells(i,1)=“销售第一季度”
如果结束
下一个
端接头
引用单元格的调用是:
SheetName.Cells(行号、列号)
。也就是说,列A变为列1,列C变为列3,依此类推

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

for
指令执行
for
指令和
Next
指令之间的行,执行次数与您指示的次数相同(在本例中为20次),每次用不同的数字替换
i
(第一次为1,第二次为2,最后一次为20)


Like
指令允许您进行
=
无法进行的匹配。
*
表示任何内容,因此如果使用
“*Sales*”
表示要匹配任何包含0个或某些字符的单元格,然后是
Sales
,然后是0个或更多字符。例如,您可以使用
“Sales*”
来匹配以
Sales
开头的单元格。

有点旧,但我添加了一点,使其能够找到类似字符串的值。例如,如果我在寻找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

到目前为止您尝试过什么吗?您可以使用excel中的
查找和替换
。您好,谢谢您的回复。。。你能解释一下代码是如何知道在哪里查找的吗?1到20代表什么?代表哪一列?谢谢。。。。。。我不想使用Ctrl+h的原因是,我需要为大约100个文件执行此操作,每个文件有多行…此外,如果您能更新代码以包含工作表,我将不胜感激。。。这样我就可以对不同的工作表使用相同的代码。。。。谢谢!!!非常感谢你的帮助!只是想知道,为什么要用20(1到20)来执行20次?如果你把相关的数字写在一行中,从1到20,你最终会用20行。这是一样的,如果我想让某个东西执行20次,我会从1数到20(尽管你也会看到从0数到19,特别是在Java或C等其他语言中)。