使用范围对象的行属性进行匹配/查找

时间:2018-01-29 19:28:18

标签: excel vba excel-vba

我在Excel VBA中创建一个公式,用于解析用逗号分隔的单元格中的“部分”列表。在具有该部件名称的另一个工作表中查找单元格,然后使用找到的该单元格的地址从同一行,不同列获取该部件的成本。我已经花了很多时间在网上阅读文档并彻底阅读了这些文档但仍然存在。

以下是相关代码:

byte []

基本上,通过使用MsgBox,我发现它确实在其他“部件列表”工作表中找到了该条目,但是如果我使用curCell打印出地址,行或列,则没有结果。< / p>

1 个答案:

答案 0 :(得分:2)

  

curCell = Worksheets("Parts List").Range("A1:A100").Find(element)

找到单元格并将值放在变量而不是范围内。您需要将curCell声明为范围,然后设置变量。

Public Function PartCost() As Integer
Dim PList() As String
PList = Split(Cells(Application.Caller.Row, 4).Value, ", ")

Dim element As Variant
Dim curCell As Range
PartCost = 0

For Each element In PList
    Set curCell = Worksheets("Parts List").Range("A1:A100").Find(element)
    PartCost = PartCost + Cells(curCell.Row, 3).Value
Next element

此外,如果找不到该值,则curcell将无效,您需要进行检查以确保找到该值。

Public Function PartCost() As Integer
Dim PList() As String
PList = Split(Cells(Application.Caller.Row, 4).Value, ", ")

Dim element As Variant
Dim curCell As Range
PartCost = 0

For Each element In PList
    Set curCell = Worksheets("Parts List").Range("A1:A100").Find(element)
    If Not curCell Is Nothing Then
        PartCost = PartCost + Cells(curCell.Row, 3).Value
    End If
Next element