【发布时间】:2017-02-07 07:17:24
【问题描述】:
我有一个帐户和代码列表,并希望使用索引匹配填充来自不同工作表的结果的列。我可以使用以下公式使其工作:=index(rngB,match(BCode,rngM,0),55)
但无法将其翻译成 vba。我试过了:
sub compare()
Dim BudgetResult As Long
Dim var1 As Long
Dim rngB, rngM As Range
Dim CompSH, ActSH, BudSH As Worksheet
Dim BCode As Variant
Set CompSH = Sheets.Add(After:=Sheets(Sheets.Count))
Set ActSH = Sheets(2)
Set BudSH = Sheets(3)
Set rngB = BudSH.Range("B11:BF50")
Set rngM = BudSH.Range("B:B")
Set BCode = CompSH.Range("A2")
BudSH.Select
Range("B10:E76").Select
Selection.Copy
CompSH.Select
ActiveSheet.Paste
Range("F1").Select
ActiveCell.FormulaR1C1 = "Budget"
Range("F2").Select
With Application.WorksheetFunction
var1 = .Match(BCode, rngM, 0)
BudgetResult = .Index(rngB, var1, 55)
End With
我得到一个空白单元格。工作表中没有结果。 另外,我不知道如何继续下去。有人可以帮忙吗?
【问题讨论】:
-
您准备好将 Excel 公式翻译成 VBA 了吗?如果您已经决定使用 VBA,为什么不使用它的额外功能?