好的,我将重新提出问题。
我有一个工作表,其中有一个名为“ 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
不幸的是,我得到一个错误-“编译错误”-需要对象。
答案 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