0

我正在编写宏来搜索短语,选择右侧的单元格,复制,选择第 2 页,然后粘贴到那里的静态单元格。该宏用于在 Excel 电子表格上组织餐厅销售报告。

我是编程新手,没有使用 VBA 的经验。

我不知道如何在工作表中搜索单词或短语。

4

1 回答 1

2

有很多方法可以找到一个单元格,这取决于你想要做什么。

要完全按照您的描述进行操作,您将使用该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 的事情。或者也许使用排序或过滤接口之一。这取决于您的工作簿的结构以及您想要做什么。

于 2013-08-21T15:28:35.680 回答