VBA - IF заявление не

Ниже приведен мой код VBA, который пометит название компании, если это «Климат», «ComRes» или «Остатки».

For i = startrow To lastrow
    Company = dbsheet.Range("E" & i).Value
    Office = dbsheet.Range("G" & i).Value

    If InStr(Company, "Climate") Or (Company = "CT") Or (Company = "DSN") Or (Company = "WR") Then
    Label = "Climate"

    ElseIf (Company = "ECRS") And (Office = "(Platform Level)" Or Office = "CM" Or Office = "CM Grantsville") Then
    Label = "ComRes"

    Else
    Label = "Remnants"


    dbsheet.Range("H" & i).Value = Label
    End If

Моя основная проблема заключается в том, что если название компании попадает в категорию «Климат» или «КомРес», оно не дает никакого ярлыка. Просто ноль. Но работает на «Остатки».

Результаты VBA - IF заявление не

Что-то не так с частью if else? Спасибо!

Ниже весь мой код:

Sub Dummy2()

Dim dbsheet As Worksheet
Set dbsheet = ThisWorkbook.Sheets("xc_Global_Address_List")

Columns("H:H").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 'Insert Label Column
Range("H1").Value = "Filter Column" 'Rename Header as "Filter Column"

Dim startrow As Long, lastrow As Long
startrow = 2
lastrow = dbsheet.Cells(Rows.Count, 1).End(xlUp).Row 'lastrow

Dim i As Long, Label As String
Dim Company As String
Dim Office As String

For i = startrow To lastrow
    Company = dbsheet.Range("E" & i).Value
    Office = dbsheet.Range("G" & i).Value

    If InStr(Company, "Climate") Or (Company = "CT") Or (Company = "DSN") Or (Company = "WR") Then
    Label = "Climate"

    ElseIf (Company = "ECRS") And (Office = "(Platform Level)" Or Office = "CM" Or Office = "CM Grantsville") Then
    Label = "ComRes"

    Else
    Label = "Remnants"


    dbsheet.Range("H" & i).Value = Label
    End If


Next i

End Sub
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
0
41
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я немного скорректирую ваш отступ:

For i = startrow To lastrow
    Company = dbsheet.Range("E" & i).Value
    Office = dbsheet.Range("G" & i).Value

    If InStr(Company, "Climate") Or (Company = "CT") Or (Company = "DSN") Or (Company = "WR") Then
        Label = "Climate"
    ElseIf (Company = "ECRS") And (Office = "(Platform Level)" Or Office = "CM" Or Office = "CM Grantsville") Then
        Label = "ComRes"
    Else
        Label = "Remnants"
        dbsheet.Range("H" & i).Value = Label
    End If
Next i

Тогда вы должен сможете увидеть, что строка dbsheet.Range("H" & i).Value = Label - это внутри оператор If вместо за пределами это:

For i = startrow To lastrow
    Company = dbsheet.Range("E" & i).Value
    Office = dbsheet.Range("G" & i).Value

    If InStr(Company, "Climate") Or (Company = "CT") Or (Company = "DSN") Or (Company = "WR") Then
        Label = "Climate"
    ElseIf (Company = "ECRS") And (Office = "(Platform Level)" Or Office = "CM" Or Office = "CM Grantsville") Then
        Label = "ComRes"
    Else
        Label = "Remnants"
    End If
    dbsheet.Range("H" & i).Value = Label
Next i

Спасибо @Chronocidal. Оно работает! просто неуместная строка ... блин ... Я думал, что это даст те же результаты.

7thGen 10.07.2018 13:56

Другие вопросы по теме