VBA Excel неправильный порядок инструкции IF - PullRequest
0 голосов
/ 04 августа 2020

Добрый день,

У меня другая проблема, связанная с оператором IF.

У меня следующий код:

 Sub BOMNewRow()
    If Range("D38").Value <> "" Or Range("C38") <> "x" Or Range("C38") <> "0" Then
    'Inserting new Core Drill row + formula autofill from the previous one
      Range("A38").EntireRow.Insert
      Range("A38").Value = "First Core drill into building or existing chamber (per event)"
      Range("B38").Value = "Sitec"
    
      If Range("D39").Value Like "*2*" Or Range("C39").Value = 2 Then
        Range("C38").Value = 2
      Else
        Range("C38").Value = 1
      End If
    
     Range("E38").Value = 100.39
     Range("F37").Select
    Selection.AutoFill Destination:=Range("F37:F38"), Type:=xlFillDefault
   'customizing new row
    With Range("A38:B38,D38:F38")
      .Borders(xlEdgeTop).Weight = xlThin
      .Borders(xlEdgeBottom).Weight = xlThin
   End With
   With Range("C38")
      .Borders(xlEdgeBottom).Weight = xlMedium
   End With
    Else
   Call AuditCheck   'go straight away to the BoM audit control
'Taking a look on one of the audit cell
  End If
 If Range("C39").Value <> "x" Or Range("C39").Value <> "0" Then
  Range("C39").Value = "x"
  Range("D38").Value = Range("D39")
Call New_version2
Sheets("BoM").Activate
 Else
   Call AuditCheck
End If
Range("A43").Select
End Sub

Я собираюсь сделать следующее:

  • вставьте новую строку 38 и настройте ее - это делается моим первым оператором IF.
  • запустить второй оператор IF на основе ячейки C39, который не работает.

Если раньше у меня было значение X в ячейке C38, теперь, когда я вставляю новую строку, второй оператор IF по-прежнему выполняет процесс для значения C39, которым является X. введите описание изображения здесь .

Похоже, я не понимаю порядок операторов if в макросе.

Как я могу решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...