IF基于参考文献填写单元格的声明

时间:2016-10-04 12:26:11

标签: excel vba excel-vba

这是一个非常奇怪的请求:

我想要一个VBA宏或一个IF语句来读取引用的位置,并填充显示引用单元格的位置的另一个单元格。

这是一个包含数百个测量值的零件的检查清单,数据来自大约7种不同的电子表格。规范要求每个值都有一个检查方法。我意识到我可以单独完成它,但是,当然,单元格引用了一个不同的单元格,它将为每个单元格提供自定义的IF语句,这些语句在任何时候都不会减少。我试图接受这个声明并将其应用于其他几十个电子表格,否则手动输入就不会太糟糕了。

例如: 如果单元格引用Hard Gauge工作簿中的值,我希望它右边的单元格读取" Hard Gauge,"如果单元格引用了Height Gauge值,我希望它右边的单元格读取" Height Gauge。"

  

类似的东西:

IF({File Path}[40452-1016 REV. A **(HEIGHT GAGE)**.xlsm] = TRUE, "HEIGHT GAUGE", IF({File Path}[40452-1016 REV. A **(HARD GAGE)**.xlsm] = TRUE, "HARD GAUGE",,))

我知道问题是忽略" .xlsm"

之后的单元格值
{File Path}[40452-1016 REV. A (HEIGHT GAGE).xlsm]**'!$C$29**

如果有可能,有人可以帮助我或让我知道。它不一定必须来自IF语句,VBA宏也能正常工作。

1 个答案:

答案 0 :(得分:1)

如果确实字符串包含.xlsm,这将为您提供.xlsm左侧的所有内容。这应该是一个很好的起点

Sub t()
Dim endrow As Long
Dim column As String
Dim a As Range

column = "A"
endrow = ActiveSheet.Range(column & Rows.Count).End(xlUp).Row


For Each a In Range(column & endrow)
    If InStr(1, a.Value, ".xlsm", vbTextCompare) > 0 Then
        a.Offset(0, 1).Value = Left(a.Value, InStr(1, a.Value, ".xlsm", vbTextCompare))
    End If
Next a
End Sub