2 つのワークシートがあります。シート内の値を使用してシート内をto_approve
検索し、セル参照を特定して、隣接するセルに値を貼り付けることができるようにします ( )。column A
submitted
column B
以下を使用してセル参照を識別しましたが、VBA コードで使用する方法がわかりません。
=ADDRESS(MATCH(To_Approve!D19,Submitted!A:A,0),1,4,1,"submitted")
2 つのワークシートがあります。シート内の値を使用してシート内をto_approve
検索し、セル参照を特定して、隣接するセルに値を貼り付けることができるようにします ( )。column A
submitted
column B
以下を使用してセル参照を識別しましたが、VBA コードで使用する方法がわかりません。
=ADDRESS(MATCH(To_Approve!D19,Submitted!A:A,0),1,4,1,"submitted")
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
この例は、別のシートで対応する値を見つけ、左側の列に 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 は、入力する値のプレースホルダーです。)