首页 > 解决方案 > 我遇到了一个奇怪的问题,将带有 vlookup 的公式输入到带有 VBA 的单元格中

问题描述

我正在尝试将公式输入到单元格 O2 中,但是当我这样做时,我有 #NAME?在它们中,而不是应该转移的 vlookup 函数。如果我在excel中手动单击该单元格中的公式,然后单击Enter,它就会开始工作。

Range("O2").Formula = "=VLOOKUP(F2,Reference_substances!B:C,2,0)"

当我手动“编辑”我的宏放入该单元格的公式时会发生一些事情,但我实际上并没有改变任何东西。我不知道这是否重要,但工作表“Reference_substances”是使用不同的宏创建的(首先我运行一个创建工作表 Reference_substances 的宏,然后运行其中包含 vlookup 的宏)。

编辑:添加代码。

Sub Raport()
Dim n1 As Integer 
Dim n2 As String 
Dim n3 As String 
Dim n4 As String 
Dim n5 As String 
n1 = Worksheets("Zmienne").Range("B1")
n2 = Worksheets("Zmienne").Range("B2")
n3 = Worksheets("Zmienne").Range("B3")
n4 = Worksheets("Zmienne").Range("B4")
n5 = Worksheets("Zmienne").Range("B5")
Dim n1_1 As Integer
Dim n1_2 As Integer
Dim n1_3 As Integer
Dim n1_4 As Integer
n1_1 = n1 + 1 '121
n1_2 = n1 + 12 '132
n1_3 = n1 + 16 '136
n1_4 = n1 + 136 '256

Sheets.Add.Name = "Raport"

Worksheets(n2).Range("A12:A" & n1_2).Copy Worksheets("Raport").Range("A1:A" & n1_1)
Worksheets(n2).Range("B12:B" & n1_2).Copy Worksheets("Raport").Range("B1:B" & n1_1)
Worksheets(n2).Range("D" & n1_3 & ":D" & n1_4).Copy Worksheets("Raport").Range("C1:C" 
& n1_1)
Worksheets(n2).Range("G" & n1_3 & ":G" & n1_4).Copy Worksheets("Raport").Range("G1:G" 
& n1_1)
Worksheets(n2).Range("F12:F" & n1_2).Copy Worksheets("Raport").Range("H1:H" & n1_1)
Worksheets(n2).Range("C" & n1_3 & ":C" & n1_4).Copy Worksheets("Raport").Range("N1:N" 
& n1_1)
Worksheets(n2).Range("K13:K" & n1_2).Copy Worksheets("Raport").Range("Q2:Q" & n1_1)

Range("H1").Value = "Area 48h"
Range("I1").Value = "Area 48h_2"
Range("J1").Value = "Area 28d"
Range("K1").Value = "Area 28d_2"

Range("L1").Value = "C Tol 48h"
Range("M1").Value = "C Tol 28d"

Range("L2").Select
ActiveCell.FormulaR1C1 = "=(((RC[-4]+RC[-3])/2)/18159)/5"
Range("L2").Select
Selection.AutoFill Destination:=Range("L2:L" & n1_1)

Range("M2").Select
ActiveCell.FormulaR1C1 = "=(((RC[-3]+RC[-2])/2)/18159)/5"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & n1_1)

Range("D1").Value = "C2_wz"
Range("E1").Value = "C28_wz"
Range("F1").Value = "Wzorzec"

Range("O1").Value = "a"
Range("P1").Value = "Quantific"

Range("D2").FormulaR1C1 = "=(((RC[+4]+RC[+5])/2)/RC[+11])/5"
Range("D2").AutoFill Destination:=Range("D2:D" & n1_1)
Range("E2").FormulaR1C1 = "=(((RC[+5]+RC[+6])/2)/RC[+10])/5"
Range("E2").AutoFill Destination:=Range("E2:E" & n1_1)
Range("F2").Formula = "=WYSZUKAJ.PIONOWO(C2,Zmienne!A:B,2,0)"
Range("F2").AutoFill Destination:=Range("F2:F" & n1_1)
Range("O2").Formula = "=WYSZUKAJ.PIONOWO(F2,Reference_substances!B:C,2,0)"
Range("O2").AutoFill Destination:=Range("O2:O" & n1_1)

Worksheets(n2).Range("K12:K" & n1_2).Copy Worksheets("Raport").Range("Q1:Q" & n1_1)
Columns("A:Q").EntireColumn.AutoFit
Range("Q:Q").Select
With Selection
    .HorizontalAlignment = xlLeft
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
End With

End Sub

这有点乱,因为我最近才开始使用 VBA,而且一些名称和 vlookup 函数也是波兰语。

WYSZUKAJ.PIONOWO 是 VLOOKUP 的波兰语名称(我试过用英文版,它是一样的)

标签: excelvbavlookup

解决方案


推荐阅读