我正在尝试将Cap Level = 2的Tier Code和Cap Code连接起来。我能够在不使用Cap Level = 2的情况下使用case语句成功地进行串联。但是,现在尝试添加该条件时,我不断收到错误“ Type Mistmatch”。我尝试设置Range(“ E3:E24”)。Value = 2和=“ 2”。两种方式,我仍然会收到错误。
我的数据当前如下所示:
我已经处理了至少一个小时,并阅读了有关具有多个条件/条件的案例陈述的其他问题,但我无法使我的代码正常工作。
Sub Concat_ParentCode_Cap1_001()
With Worksheets("PD Code Structure")
Dim ParentCode As Range
Dim TierCode As String
Dim CapCode As String
CapCode = "FS_CAP_1_001"
TierCode = "FS_Tier_1"
Set ParentCode = Range("F3:F24")
Select Case True
Case CapCode = "FS_CAP_1_001" And Range("E3:E24").Value = "2"
ParentCode = TierCode & "." & CapCode
End Select
End With
End Sub
我希望我的数据看起来像这样:
答案 0 :(得分:1)
提供的代码中有几件事会使它不太起作用,但主要的事情是循环检查每个单元格。
试一下:
Option Explicit
Sub Concat_ParentCode_Cap1_001()
Dim tierCode As String
tierCode = "FS_TIER_1."
With Worksheets("PD Code Structure")
Dim capCode As Range
For Each capCode In .Range("F2:F24")
If Len(capCode.Offset(, -1)) Then
Dim capParent As String
capParent = capCode.Value
End If
If capCode.Offset(, -2).Value = 2 Then
capCode.Offset(, -1).Value = tierCode & capParent
End If
Next
End With
End Sub
答案 1 :(得分:0)
您真的需要为此使用VBA吗?这看起来就像您可以在excel上使用if语句来执行的操作。 = if(B2 = 2,CONCAT(A1,“。”,D1),“”)。当然,这是假设这些列在上面的A-D中列出。