String 将单元格值用作字符串VBA
单元格A2包含值“25-86” 我需要单元格B2的值为“AJ 2586%” 此代码显示语法错误:String 将单元格值用作字符串VBA,string,vba,excel,String,Vba,Excel,单元格A2包含值“25-86” 我需要单元格B2的值为“AJ 2586%” 此代码显示语法错误: Range("B2").Value = "AJ & Left(Range("A2"), 2) & Right(Range("A2"), 2) & %" 如果我这样写的话 Range("B2").Value = "AJ & Left(A2, 2) & Right(A2, 2) & %" 函数Left和Right将“A2”视为字符串 如何从单元格中提取
Range("B2").Value = "AJ & Left(Range("A2"), 2) & Right(Range("A2"), 2) & %"
如果我这样写的话
Range("B2").Value = "AJ & Left(A2, 2) & Right(A2, 2) & %"
函数Left
和Right
将“A2”视为字符串
如何从单元格中提取一部分文本并将其输入另一个单元格?问题在于“”之间的所有内容都定义了一个字符串。 您可以按如下方式键入代码:
Range("B2").Value = "AJ " & Left(Range("A2"), 2) & Right(Range("A2"), 2) & "%"
将代码缩进4个空格,使其格式正确
以下公式将以实际百分比的形式返回数值,您可以在计算中使用。
它只是从图中删除了
-
=SUBSTITUTE(A2,"-","")/100
最初,它将显示值为25.86
当您应用以下内容的自定义编号格式时:
\AJ 0%
然后它将显示为AJ 2586%
如果该公式在A1中,则=A1/2
将返回AJ 1293%
编辑:刚刚意识到您希望在VBA中使用它:
Range("B2") = Replace(Range("A2"), "-", "") / 100
Range("B2").NumberFormat = "\AJ 0%"
或者,如果您只想将其作为文本:
Range("B2") = "AJ " & Replace(Range("A2"), "-", "") & "%"
如果您在VBA中检查我的代码,它将按预期工作(as+可以连接而无需使用符号)。任何一种方法都有效。
类型不匹配
@cmbarnett87如果要连接的任何一项都是数字,则vba将尝试将数字添加到文本字符串中,您将获得类型不匹配。如果两个都是字符串,那么是的,它工作,但是&
将同时工作数字和字符串。因此,为了避免混淆和错误,人们普遍认为应该使用&
而不是+
进行连接。我想我可能没有注意到他的示例中有双引号(我假设他也放在单元格中?)。当我在Excel中测试它时,我没有遇到+或&-的任何问题,这是没有双引号的。
Range("B2") = "AJ " & Replace(Range("A2"), "-", "") & "%"