1

2 つのワークシートがあります。シート内の値を使用してシート内をto_approve検索し、セル参照を特定して、隣接するセルに値を貼り付けることができるようにします ( )。column Asubmittedcolumn B

以下を使用してセル参照を識別しましたが、VBA コードで使用する方法がわかりません。

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

2 に答える 2

2

ADDRESSを使用してVBAで多くの関数を使用できますがApplication.WorksheetFunction.FunctionName、これらの1つではありません(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

この例は、別のシートで対応する値を見つけ、左側の列に 2 番目の値を配置する方法を示しています。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 に答える