打开工作簿多次提示

时间:2018-04-27 19:21:54

标签: excel vba excel-vba

我每天都会收到几次文件。我试图尽可能地自动化它,其中一部分包括让你选择一个vlookup文件的宏(文件名每次都不同)。我的宏运行,但由于某种原因,它会提示您选择文件3次。我在代码上尝试了一些变体,但没有任何效果。有没有人知道为什么?它在第一次打开文件时提示一次,在用公式填充第一个单元格时提示一次,当宏用vlookup公式填充列时再次提示。我已粘贴下面的相关部分:

Dim MyFile As String
MyFile = Application.GetOpenFilename

Set firstWB = ActiveWorkbook
Set mySheet = ActiveSheet


Set wbLookup = Workbooks.Open(MyFile)

    firstWB.Activate
    mySheet.Range("T2").Select
    ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-18],'[wbLookup]tempemail'!R2C2:R123C20,19,0)"

    Range("S1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(0, 1).Select
    Range(Selection, Selection.End(xlUp)).Select
    Selection.FillDown

    Columns("t:t").EntireColumn.AutoFit

    Columns("T:T").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False


    wbLookup.Close False


    Range("U1").Select
    ActiveCell.FormulaR1C1 = "=NOW()"
    Range("U1").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveSheet.Paste
    Application.CutCopyMode = False

    Columns("u:u").EntireColumn.AutoFit

End Sub

谢谢!

1 个答案:

答案 0 :(得分:0)

ActiveCell.FormulaR1C1 = _
   "=VLOOKUP(RC[-18],'[wbLookup]tempemail'!R2C2:R123C20,19,0)"

除非wbLookup字面上是您文件的名称,否则无效。 Excel会看到此信息并提示您输入实际名称。

ActiveCell.FormulaR1C1 = _
   "=VLOOKUP(RC[-18],'[" & wbLookup.Name & "]tempemail'!R2C2:R123C20,19,0)"

可能效果更好

此:

Columns("T:T").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False

......可以替换为:

Columns("T:T").Value = Columns("T:T").Value

许多选择/激活是不必要的,最好避免使用:How to avoid using Select in Excel VBA