String VBA:如何查找“a”之后的值@&引用;字符串中的符号
我试图将@符号后面的字母设置为变量 例如,String VBA:如何查找“a”之后的值@&引用;字符串中的符号,string,vba,String,Vba,我试图将@符号后面的字母设置为变量 例如,x=@BAL 我想设置y=BAL 或x=@NE 我想要y=NE 我正在使用VBA 您可以执行以下操作以获取@符号后面的子字符串 x = "@BAL" y = Right(x,len(x)-InStr(x,"@")) 其中x可以是任何字符串,在@符号之前或之后都有字符。您可以执行以下操作以获取@符号之后的子字符串 x = "@BAL" y = Right(x,len(x)-InStr(x,"@")) 其中x可以是任意字符串,在@符号之前或之后都有字
x=@BAL
我想设置y=BAL
或x=@NE
我想要y=NE
我正在使用VBA 您可以执行以下操作以获取@符号后面的子字符串
x = "@BAL"
y = Right(x,len(x)-InStr(x,"@"))
其中x可以是任何字符串,在@符号之前或之后都有字符。您可以执行以下操作以获取@符号之后的子字符串
x = "@BAL"
y = Right(x,len(x)-InStr(x,"@"))
其中x可以是任意字符串,在@符号之前或之后都有字符。Split()
在我看来,这是最简单的方法:
x = "@BAL"
y = Right(x,len(x)-InStr(x,"@"))
Dim myStr As String
myStr = "@BAL"
If InStr(, myStr, "@") > 0 Then '<-- Check for your string to not throw error
MsgBox Split(myStr, "@")(1)
End If
消息框将返回测试
,因为您使用了(2)
,这是@
字符的第二个实例
然后您甚至可以将它们拆分为一个数组:
Dim myStr As String, splitArr() As String
myStr = "@BAL@TEST"
splitArr = Split(myStr, "@") '< -- don't append the collection number this time
MsgBox SplitArr(1) '< -- This would return "BAL"
MsgBox SplitArr(2) '< -- This would return "TEST"
Dim myStr作为字符串,splitArr()作为字符串
myStr=”@BAL@TEST"
splitArr=Split(myStr,“@”)<--这次不要追加集合号
MsgBox SplitArr(1)<--这将返回“BAL”
MsgBox SplitArr(2)<--这将返回“TEST”
如果您正在寻找其他阅读资料,请参阅: Description返回一个基于零的一维数组,该数组包含指定数量的子字符串SYNTASSPLIT(表达式[,分隔符[,限制[,比较]])函数语法具有以下命名参数: 表达 必需的。包含子字符串和分隔符的字符串表达式。如果表达式是零长度字符串(“”),Split返回一个空数组,即不包含元素和数据的数组 分隔符 可选。用于标识子字符串限制的字符串。如果省略,则假定空格字符(“”)为分隔符。如果分隔符是长度为零的字符串,则返回包含整个表达式字符串的单个元素数组 限制 可选。要返回的子字符串数-1表示返回所有子字符串 比较 可选。数值,指示计算子字符串时要使用的比较类型。有关值,请参见“设置”部分
Split()
在我看来,这是最简单的方法:
Dim myStr As String
myStr = "@BAL"
If InStr(, myStr, "@") > 0 Then '<-- Check for your string to not throw error
MsgBox Split(myStr, "@")(1)
End If
消息框将返回测试
,因为您使用了(2)
,这是@
字符的第二个实例
然后您甚至可以将它们拆分为一个数组:
Dim myStr As String, splitArr() As String
myStr = "@BAL@TEST"
splitArr = Split(myStr, "@") '< -- don't append the collection number this time
MsgBox SplitArr(1) '< -- This would return "BAL"
MsgBox SplitArr(2) '< -- This would return "TEST"
Dim myStr作为字符串,splitArr()作为字符串
myStr=”@BAL@TEST"
splitArr=Split(myStr,“@”)<--这次不要追加集合号
MsgBox SplitArr(1)<--这将返回“BAL”
MsgBox SplitArr(2)<--这将返回“TEST”
如果您正在寻找其他阅读资料,请参阅: Description返回一个基于零的一维数组,该数组包含指定数量的子字符串SYNTASSPLIT(表达式[,分隔符[,限制[,比较]])函数语法具有以下命名参数: 表达 必需的。包含子字符串和分隔符的字符串表达式。如果表达式是零长度字符串(“”),Split返回一个空数组,即不包含元素和数据的数组 分隔符 可选。用于标识子字符串限制的字符串。如果省略,则假定空格字符(“”)为分隔符。如果分隔符是长度为零的字符串,则返回包含整个表达式字符串的单个元素数组 限制 可选。要返回的子字符串数-1表示返回所有子字符串 比较 可选。数值,指示计算子字符串时要使用的比较类型。有关值,请参见“设置”部分
就我个人而言,我会使用MID,更少的键入
y=MID(x,InStr(x,“@”)+1)
我认为Right()更直观。无论如何,有很多方法可以完成这项任务,不管哪种方法对你来说更有意义。更像Mid(x,((InStr(x,“@”)-1)和65535)+2)
如果@
丢失,这在访问查询中也很有效y:Right([Access\u field],Len([Access\u field])-InStr([Access\u field],“)
就我个人而言,我会使用MID,少输入y=MID(x,InStr(x,“@”)+1)
我认为Right()更直观。无论如何,有很多方法可以完成这项任务,不管哪一种对你更有意义。更像是Mid(x,((InStr(x,“@”)-1)和65535)+2
如果@
丢失,这在访问查询中也很有效y:Right([Access\u field],Len([Access\u field])-InStr([Access\u field],“)