我有一个包含工作表1和工作表2的电子表格。工作表2的数据是使用宏从Access数据库中提取的。有一个帐号(例如:12345)和一个与该号码相对应的帐号(例如:帐号A)。
在工作表1上,我使用VLookup在“帐户名称”字段中查看A列中的帐户编号,使用该值在工作表2上查找帐户编号,然后从工作表2中提取相应的帐户名称。
我收到#N / A错误。我认为问题与以下事实有关:工作表2中的帐号已作为“文本编号”输入。但是,工作表1上的帐户是文本。
我尝试将工作表2上的帐户也更改为文本帐户,但仍然无法使用。我还尝试编写一个宏来格式化工作表1到工作表2的格式,以便使帐户在字面上匹配。
如果我双击工作表2上的帐号并按Enter键,它将把该帐户名拖到工作表1中。因此,我尝试编写一个宏来将帐户值设置为与自身相等,因为我必须对此进行一些设置其他字段,但这也不起作用。
有人以前有过类似的问题吗?如何获取vlookup来识别Sheet 2上的帐户?
这是我在工作表1上使用的vlookup: = IFERROR(VLOOKUP(A15,Ledger!A:B,2,FALSE),“”)
Sub DATA_RECORDSET_OPEN()
Application.StatusBar = "OPENING RECORDSET - PLEASE WAIT"
With rstQuery
.ActiveConnection = cn
.Source = sqlSelect
.LockType = adLockOptimistic
.CursorType = adOpenStatic
.CursorLocation = adUseServer
.Open
End With
Application.StatusBar = False
End Sub
Sub DATA_IMPORT_RECORDS()
'This section counts the number of rows with data in column "A" and then pastes the information from the query on the first empty row.
Application.StatusBar = "IMPORTING NEW ROWS OF DATA - PLEASE WAIT"
intRows = Application.CountA(ActiveSheet.Columns("A:A"))
ActiveSheet.Range("A" & intRows + 1).CopyFromRecordset rstQuery
Application.StatusBar = False
End Sub
'Format painter from Sheet 1 to Sheet 2
Sheets("Sheet 1").Range("A15").Copy
Sheets("Sheet 2").Range("A2:A500").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'Fixes Sheet 2 total formulas by correcting Sheet 2 tab cells
intCount = Application.CountA(Sheets("Sheet 2").Range("A:A"))
Do Until intCount = 1
Range("A" & intCount).Select
ActiveCell.FormulaR1C1 = Range("A" & intCount).Value
Range("B" & intCount).Select
ActiveCell.FormulaR1C1 = Range("B" & intCount).Value
Range("C" & intCount).Select
ActiveCell.FormulaR1C1 = Range("C" & intCount).Value
Range("D" & intCount).Select
ActiveCell.FormulaR1C1 = Range("D" & intCount).Value
Range("E" & intCount).Select
ActiveCell.FormulaR1C1 = Range("E" & intCount).Value
intCount = intCount - 1
Loop
答案 0 :(得分:0)
VLOOKUP
如果要查找文本,则找不到数字,如果要查找数字,则找不到文本。
如果Excel在Ledger
工作表中将帐号理解为字符串值,请使用TEXT
函数将查找值转换为字符串:
=IFERROR(VLOOKUP(TEXT(A15,"@"),Ledger!A:B,2,FALSE),"")
如果Excel在Ledger
工作表中将帐号理解为数值,请使用VALUE
函数将查找值转换为数字:
=IFERROR(VLOOKUP(VALUE(A15),Ledger!A:B,2,FALSE),"")