2016-10-04 2 views
0

Это очень странно запрос:IF Заявление Заполните ячейки на основе Reference

Я хотел бы VBA макрос или оператор IF, чтобы прочитать, где ссылка извлекается из и заполнить другую ячейку, показывающую, где клетки было упомянуто.

Это контрольный перечень проверок для части с сотнями измерений, и данные извлекаются из примерно 7 разных таблиц. Спецификация требует, чтобы каждое значение имело метод проверки, чтобы идти вместе с ним. Я понимаю, что могу сделать это индивидуально, однако, конечно, ячейки ссылаются на другую ячейку, которая будет принимать индивидуальный оператор IF для каждого, который не будет сокращаться в любое время. Я пытаюсь принять это заявление и применить его к десяткам других электронных таблиц, продвигающихся вперед, иначе ручная запись не будет слишком плохим.

Например: Если ячейка ссылается на значение из рабочей книги с жестким колесом, я хотел бы, чтобы ячейка справа от нее читала «Жесткий калибр», и если ячейка ссылается на значение высоты, я бы как ячейка справа от нее, чтобы прочитать «Калибр высоты».

Что-то вроде:

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

Это даст вам все слева от .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