这是一个非常奇怪的请求:
我想要一个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
宏也能正常工作。
答案 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