2016-07-27 71 views
1

任何人都可以在vba中查看我的代碼。括號不被識別

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

這僅輸出

-24.5 

即公式將值轉換在細胞如果單元的值是負的,並把它在括號內。謝謝。

+1

你想有這樣的公式設置爲這個小區? –

+0

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

+1

爲什麼你不使用數字格式?看起來你正試圖重新發明輪子。 – teylyn

回答

2

請以此爲參考:

將負值複製到單元格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);_("-");_() 

這將會把你的負值和噘嘴它括號內

+0

有什麼辦法可以將其轉換爲VBA? – ramj

1

在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