Steven
Steven

Reputation: 1

VB code of Excel 2013 is not responsive

I'm creating a formulation to form the name of equipment. First part (Bname = "H" Or Bname = "S") is working well. The second part (ElseIf Bname = "04" Or Bname = 4 Or Bname = "03" Or Bname = "02" Or Bname = "01" Or Bname = "00" Or Bname = "B" Or Bname = "B1") is not responsive.

I'm pretty sure that this code was working in the earlier version 2010. Can anyone advice what's went wrong with code.

Input:

Location Equip Sensor

H-00-15-0-27 FCU-GF-03 DISCHARGE TEMP,

Output:

Sensor Name Appearing

FCUGF03_H_00_15.0_27_DsTmp

Function Name_Alpha(Equipment_Tag As String, Sensor_Tag As String, Location_Tag As String) As String

Dim Bname As String
Dim Bname2 As String
Dim Bname3 As String
Dim Bname4 As String
Dim Bname5 As String

Dim EquipTag As Variant
Dim EquipTag2 As String
Dim EquipTag3 As String
Dim SensorTag As String

Bname = Split(Location_Tag, "-")(0)
Bname2 = Split(Trim(Split(Location_Tag, "-")(1)), "-")(0)
Bname3 = Split(Trim(Split(Location_Tag, "-")(2)), "-")(0)
Bname4 = Split(Trim(Split(Location_Tag, "-")(3)), "-")(0)
Bname5 = Split(Trim(Split(Location_Tag, "-")(4)), "-")(0)

EquipTag = Split(Equipment_Tag, "-")(0)
EquipTag2 = Split(Trim(Split(Equipment_Tag, "-")(1)), "-")(0)
EquipTag3 = Split(Trim(Split(Equipment_Tag, "-")(2)), "-")(0)

SensorTag = Split(Sensor_Tag, " ")(0)

If Bname = "H" Or Bname = "S" Then
    If EquipTag = "FCU" Or EquipTag = "WMU" Then
        If SensorTag = "TEMPERATURE" Then
            Name_Alpha = EquipTag & EquipTag2 & EquipTag3 & "_" & Bname & "_" & Bname2 & "_" & Bname3 & "." & Bname4 & "_" & Bname5 & "_ZnTmp"
        ElseIf SensorTag = "DISCHARGE" Then
            Name_Alpha = EquipTag & EquipTag2 & EquipTag3 & "_" & Bname & "_" & Bname2 & "_" & Bname3 & "." & Bname4 & "_" & Bname5 & "_DsTmp"
        End If
    End If

    ElseIf Bname = "04" Or Bname = 4 Or Bname = "03" Or Bname = "02" Or Bname = "01" Or Bname = "00" Or Bname = "B" Or Bname = "B1" Then
        If EquipTag = "FCU" Or EquipTag = "WMU" Then
            If SensorTag = "TEMPERATURE" Then
            Name_Alpha = EquipTag & EquipTag2 & EquipTag3 & "_" & Bname & "_" & Bname2 & "_" & Bname3 & "." & Bname4 & "_ZnTmp"
            ElseIf SensorTag = "DISCHARGE" Then
                Name_Alpha = EquipTag & EquipTag2 & EquipTag3 & "_" & Bname & "_" & Bname2 & "_" & Bname3 & "." & Bname4 & "_DsTmp"
            End If
        End If
    

End If

End Function

Upvotes: 0

Views: 44

Answers (1)

Andrew Mortimer
Andrew Mortimer

Reputation: 2370

With the following changes, this works correctly using your test data:

Change

Dim EquipTag As Variant

To

Dim EquipTag As String

And change

ElseIf Bname = "04" Or Bname = 4 Or Bname = "03" Or Bname = "02" Or Bname = "01" Or Bname = "00" Or Bname = "B" Or Bname = "B1" Then

to

ElseIf Bname = "04" Or Bname = "4" Or Bname = "03" Or Bname = "02" Or Bname = "01" Or Bname = "00" Or Bname = "B" Or Bname = "B1" Then

Upvotes: 1

Related Questions