VBa vlookup,将范围替换为变量

时间:2018-08-03 10:20:42

标签: excel-vba vlookup formulas

好的,我将重新提出问题。

我有一个工作表,其中有一个名为“ My INT”的选项卡。 该选项卡包含一个数据表和一个带有分配的宏的按钮,该宏称为“ importRMR”。下面的代码:

Sub importRMR()
Dim rng As Range

Set rng = ActiveSheet.Range("G3")
Sheets.Add(After:=ActiveSheet).Name = "RMR " & Format(Date, "DD-MM-YY")
ActiveSheet.Buttons.Add(966.75, 27.75, 153.75, 125.25).Select
Selection.OnAction = "Cimp"

Selection.Characters.Text = "Importuj"
With Selection.Characters(Start:=1, Length:=13).Font
    .Name = "Tahoma"
    .FontStyle = "Standaard"
    .Size = 16
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    End With
End Sub

这将创建一个特定名称的标签:RMR“&Format(日期,“ DD-MM-YY”)

现在,我将表(始终相同)手动粘贴到新创建的选项卡“ RMR 03/08/2018”。下一步是单击此选项卡中的按钮(Importuj),我想要的结果是: 1.在“ my INT”选项卡中,范围(查找数组)为“ RMR”选项卡的Vlookup数据,然后删除rmr选项卡。

诸如修剪数据粘贴值之类的过程,我能够做到,仅vlookup就是一个问题。

我当前的“ importuj”按钮代码为: ub TEST()

Dim DOTR As String

Dim shT As String
Set shT = Sheets(DOTR).Range("E2:H584")




'shT = Sheets(DOTR).Range("c1:e2").Select






DOTR = "RMR " & Format(Date, "DD-MM-YY")
'Sheets(DOTR).Range ("E2:H584").selc


Worksheets("My INT").Range("N3").Formula = "=vlookup(c3,sht,3,0)"


End Sub

不幸的是,我得到一个错误-“编译错误”-需要对象。

1 个答案:

答案 0 :(得分:2)

目标是将几个不同的字符串组合成一个内聚的字符串:

=VLOOKUP(C3,'ABCDEF 03-08-18'!$B$4:$D$10,3,0)

将其放置在使用以下内容的单元格中:

Worksheet.Range.Formula

工作表名称“ ABCDEF”是任意的,我们可以即时创建日期。我们在Excel中使用命名范围“ myNamedRange”,并引用address属性以允许无需编辑代码即可实现灵活性。

Dim strSheetName As String
Dim strNamedRange As String
Dim strDateSegment As String
Dim strPrefix As String
Dim shT As String

strSheetName = "My INT"
strNamedRange = "myNamedRange"
strDateSegment = Format(Day(Date), "00") & "-" & Format(Month(Date), "00") & "-" & Right(Year(Date), 2) & "'!"
strPrefix = "'" & "ABCDEF"

shT = "=VLOOKUP(C3," & strPrefix & strDateSegment & Worksheets(strSheetName).Range(strNamedRange).Address & ",3,0)"

Worksheets("My INT").Range("N3").Formula = shT