我正在编写宏来搜索短语,选择右侧的单元格,复制,选择第 2 页,然后粘贴到那里的静态单元格。该宏用于在 Excel 电子表格上组织餐厅销售报告。
我是编程新手,没有使用 VBA 的经验。
我不知道如何在工作表中搜索单词或短语。
有很多方法可以找到一个单元格,这取决于你想要做什么。
要完全按照您的描述进行操作,您将使用该Range.Find
方法。
Range.Find
在一本新的工作簿中,我在随机单元格中写下诸如 cat 和 dog 之类的单词。
然后我创建一个带有公共子的新模块,如下所示:
Public Sub TestFind()
Sheet1.Cells _
.Find("cat", LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False) _
.Offset(-1, 1) _
.Copy Sheet2.[A1]
End Sub
好吧,解释一下。如果您不熟悉,在 VBA 中,您可以使用我在上面使用过的命名参数和可选参数。我还使用了一些续行,或者微软称它们为“换行符”。
Sheet1.Cells
在 Sheet1 上,我正在获取单元格范围(所有单元格)并调用该范围的 Find 方法。
.Find
返回单元格中任何位置包含单词 cat 的第一个范围(由于 , 大小写无关紧要MatchCase:=False
,并且LookAt:=xlPart
表示单元格内容的任何部分,其中LookAt:=xlWhole
表示整个单元格)。
.Offset(-1,1)
表示将范围或单元格从一个向上和一个在找到的单元格的右侧获取。
.Copy Sheet2.[A1]
语法与.[A1]
写作相同.Range("A1")
。我希望这个副本声明的作用很明显。
您还可以考虑做一些类似于 VLOOKUP 或 INDEX 和 MATCH 的事情。或者也许使用排序或过滤接口之一。这取决于您的工作簿的结构以及您想要做什么。