1

我有两个工作表,我想使用 sheet 中的值在 sheet中to_approve查找,然后识别单元格引用,以便我可以在相邻的单元格中粘贴一个值 ( )。column Asubmittedcolumn B

我已经使用以下来识别单元格引用,但我不知道如何在 VBA 代码中使用它。

=ADDRESS(MATCH(To_Approve!D19,Submitted!A:A,0),1,4,1,"submitted")
4

2 回答 2

2

虽然可以在 VBA 中使用许多函数,但使用Application.WorksheetFunction.FunctionNameADDRESS 不是其中之一(MATCH 是)

但即使它可用,我仍然会使用如下Find 方法:

  • 使您能够匹配整个或部分字符串,区分大小写与否
  • 如果找到值,则返回要使用的范围对象
  • 轻松处理不匹配
  • 您可以控制要搜索的范围内的点,以了解搜索开始的位置
  • 可以返回多个匹配项FindNext

就像是

Sub GetCell()
 Dim ws As Worksheet
    Dim rng1 As Range
    Set ws = Sheets("submitted")
    Set rng1 = ws.Columns("A").Find(Sheets("To_Approve").[d19], , xlValues, xlWhole)
    If Not rng1 Is Nothing Then
        MsgBox rng1.Address & " in sheet " & ws.Name
    Else
        MsgBox "not found", vbCritical
    End If
End Sub
于 2011-12-06T12:05:55.020 回答
0

这个例子应该让您了解如何在另一张纸上找到相应的值并将第二个值放在左侧的列中。使用VBA时,无需选择单元格再粘贴;您可以直接在范围(单元格)对象中输入值。

Sub TransferValue()
    Dim rngSearch As Range
    Dim rngFind As Range
    Dim dValue As Double
    ' initialization
    Set rngSearch = Worksheets("to_approve").Range("D19")
    dValue = Date
    ' find the match & insert value
    Set rngFind = Worksheets("submitted").Columns(1).Find(What:=rngSearch.Value)
    If Not rngFind Is Nothing Then
        rngFind.Offset(ColumnOffset:=1).Value = dValue
    End If
End Sub

(注意:dValue 是您要输入的任何值的占位符。)

于 2011-12-06T15:18:29.837 回答