括号不被识别

问题描述:

任何人都可以在vba中查看我的代码。括号不被识别

wb2.ActiveSheet.Range("K" & lrow3 + 1).Value = "(" & wb2.ActiveSheet.Range("K" & lrow3 + 1).Value * -1 & ")" 

这仅输出

-24.5 

即公式将值转换在细胞如果单元的值是负的,并把它在括号内。谢谢。

+1

你想有这样的公式设置为这个小区? –

+0

@ShaiRado是的,这就是我想要做的。 – ramj

+1

为什么你不使用数字格式?看起来你正试图重新发明轮子。 – teylyn

请以此为参考:

将负值复制到单元格A2中。然后格式化A2以在括号中显示负值,并带有两位小数。

Sub test() 
Range("A1").Copy Range("A2") 
Range("A2").NumberFormat = "0.00;(0.00);0" 

End Sub 

enter image description here

没有被转换。没有括号连接。单元格只是用自定义数字格式进行格式化。在Excel中的数字格式的语法

<format for positive values>;<format for negative values>;<format for zeroes>;text 

例如,自定义格式

0;-0;; 

将显示为整数,负值正值与一家领先的-签,隐藏零和隐藏文本。

选择范围,然后去单元格格式 ... - >定制,并键入:

_(* #,##0_);_(* (#,##0);_("-");_() 

这将会把你的负值和噘嘴它括号内

+0

有什么办法可以将其转换为VBA? – ramj

在VBA代码:

if wb2.ActiveSheet.Range("K" & lrow3 + 1).Value<=0 then 
    wb2.ActiveSheet.Range("K" & lrow3 + 1).Value = wb2.ActiveSheet.Range("K" & lrow3 + 1).Value * -1 
else 
    wb2.ActiveSheet.Range("K" & lrow3 + 1).numberformat = "@" 
    wb2.ActiveSheet.Range("K" & lrow3 + 1).Value = "(" & wb2.ActiveSheet.Range("K" & lrow3 + 1).Value * -1 & ")" 
end if