Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 根据条件插入字符_Vba_Excel - Fatal编程技术网

Vba 根据条件插入字符

Vba 根据条件插入字符,vba,excel,Vba,Excel,第一次张贴在这里…我需要添加连字符的数字,如果他们满足一个或另一个标准。根据满足的条件,破折号将添加到不同的位置 数字在A列中,它们所检查的值在B列中。我需要检查B中的值,然后相应地更新A。如果B=SOC SEC,最终结果为123-45-6789,如果B=TAXID,最终结果为12-3456789 我有以下内容,但我知道我缺少几个组件。我似乎到处都找不到正确的答案 Sub AddHyphens() Dim TaxIDType As String Dim taxid As Long

第一次张贴在这里…我需要添加连字符的数字,如果他们满足一个或另一个标准。根据满足的条件,破折号将添加到不同的位置

数字在A列中,它们所检查的值在B列中。我需要检查B中的值,然后相应地更新A。如果B=SOC SEC,最终结果为123-45-6789,如果B=TAXID,最终结果为12-3456789

我有以下内容,但我知道我缺少几个组件。我似乎到处都找不到正确的答案

Sub AddHyphens()
    Dim TaxIDType As String
    Dim taxid As Long
    Dim SOCSEC As String
    Dim TAXIDfield As String
        IF TaxIDType="SOC SEC" then Cstr(Left(TaxID,3)&"-"&Mid(TaxID,4,2)&"-"&Right(TaxID,4)
     Else
        IF TaxIDType="TAXID" then Cstr(Left(TaxID,2)&"-"&Right(TaxID,7)

End Sub

给你。只需确保在A列中选择需要转换的整个数字范围

Sub AddHyphens()
Dim myRange As Range
Dim myCell As Range

Set myRange = Selection

For Each myCell In myRange

If myCell.Offset(0, 1).Value = "SOC SEC" Then
    myCell.Value = Left(myCell.Value, 3) & "-" & Mid(myCell.Value, 4, 2) & "-" & Right(myCell.Value, 4)
ElseIf myCell.Offset(0, 1).Value = "TAXID" Then
     myCell.Value = Left(myCell.Value, 2) & "-" & Right(myCell.Value, 7)
End If

Next myCell

End Sub

Cstr(左(TaxID,3)&“-”和中(TaxID,4,2)&“-”和右(TaxID,4))
是不必要的-
。值
接受一个
变量
参数,因此它将转换为
字符串
,然后再转换回
变量
<代码>左(滑行,3)&“-”和中(滑行,4,2)&“-”和右(滑行,4)避免了2次不必要的强制转换。这是正确的。我甚至没想过要选演员。将编辑nowOP的错误,而不是您的错误。;-)工作完美。谢谢你的帮助!