【发布时间】:2016-10-11 05:42:16
【问题描述】:
我收到运行时错误“13”:以下代码的类型不匹配。根据我对这个错误的理解,它似乎是由公式中有两种类型的变量引起的。这对我来说有点正确,因为我的索引匹配函数将单元格与数字连接起来,将单元格与文本连接起来以返回一个数字。我尝试将数字格式化为文本,但不断收到相同的错误。这似乎是问题吗?如果是这样,有没有人知道这种/不同的方法来做我在这里尝试做的事情?谢谢!
Sub Lookup2()
Dim cell As Range
Dim lookUp1Sht As Worksheet
Dim lookUp2Sht As Worksheet
Dim lookUp2Rng As Range
Dim val1 As Variant
Set lookUp1Sht = ThisWorkbook.Worksheets("New")
Set lookUp2Sht = ThisWorkbook.Worksheets("input")
Set lookUp2Rng = ThisWorkbook.Worksheets("comp").Range("A1:C136")
For Each cell In Range("CaliforniaL")
With cell '
Select Case True
Case IsNumeric(.Value)
.Offset(0, 1).Value = CDbl(.Value)
Case Else
.Offset(0, 1).Value = (Application.WorksheetFunction.Index(lookUp2Sht.Range("K:K"), Application.WorksheetFunction.Match(cell.Value & cell.Offset(0, -3), lookUp2Sht.Range("A:A") & lookUp2Sht.Range("H:H"), 0)))
End Select
End With
Next
End Sub
【问题讨论】:
-
哪一行特别出错了?如果您在中断模式下将鼠标悬停在某物上,您能否查看所有函数/变量的值以确定哪个函数/变量返回了 bum 值?
-
它在具有索引匹配功能的行上。当我将鼠标悬停在行的每个部分上时,它会显示 .Offset (0,1).Value = Empty
-
对于 Range().Cells 中的每个单元格
-
代码中
lookUp2Sht.Range("A:A") & lookUp2Sht.Range("H:H")的部分看起来“错误”。我不确定 Excel 将如何解释连接两个完整列范围的尝试。刚刚检查过,Match无法处理两列 - 一次在两列中查找值真的没有多大意义。 -
我 认为 我已经弄清楚了你想用你的
Match做什么 - 你是否试图找到cell.Value在lookUp2Sht.Range("A:A")中存在的位置和,同时cell.Offset(0, -3)存在于lookUp2Sht.Range("H:H")中?