2017-08-17 55 views
1

我想拥有完整的数字,如:14'119'838 - 它也仅仅是0。如果我试试这个:的NumberFormat 0小数,但千位分隔符“'”

Range("C3:H14").NumberFormat = "0" 

撇号千分隔符消失。如果我将NumberFormat设置为“常规”,则不存在千位分隔符....我怎样才能得到0小数位,但是使用美丽的千位分隔符?

感谢

回答

2

你有你的号码Fromat改变这样的:如果你使用这个Range("C3:H14").NumberFormat = "#,##0"公式,你会得到

Range("C3:H14").NumberFormat = "#'###'##0" 

英文数字格式。 由于您要求“'”Seperartor,您将需要“#'###'## 0”数字格式以获得瑞士数字格式。


代码由数

For Each Rng In Range("a1:B5") 

Select Case Len(Rng.Value) 'hier Spalte A 
    Case Is < 4: Rng.NumberFormat = "##0" 

    Case 4 To 6: Rng.NumberFormat = "#'##0" 

    Case 7 To 11: Rng.NumberFormat = "#'###'##0" 

    End Select 
    Next 
+0

这导致了2个问题:1.几个单元格为0,所以在改变格式之后,这将是“0”。问题是这忽略了第二个或百万个分隔符。例如1234'567不是很漂亮 – dv3

+0

@ dv3然后将它改为“#”###'## 0“ – Moosli

+1

@Moosli的结果是'343'424 343424.我认为dv3需要的是摆脱多余的” '“在一个数字的开头。我认为可以用'select case'来完成,但为此你需要运行一个范围内的每个单元格,并且肯定会降低性能。 – AntiDrondert

2

"0"改变你NumberFormat

Range("C3:H14").NumberFormat = "#,##0" 
+0

这样会给他是英文数字格式。但他提出了瑞士数字格式。 – Moosli

+0

@Moosli对不起,在他的帖子里提到了哪里?我找不到任何关于瑞典第一瑞士语瑞典语 –

+2

的提法..​​....他并没有直接要求瑞典语,而是举例说明了数字的外观。在标题中,他要求单引号分隔符thoussands不带 逗号 – Moosli

1

韦尔普的长度改变NumberFormat的,对不起,我来晚了,这里是另一种解决方案:

Option Explicit 
Sub again() 
    Dim rng As Range 
    set rng = ThisWorkbook.Worksheets("Sheet1").Range("C3:H14") 
    Application.UseSystemSeparators = False 
    Application.ThousandsSeparator = "'" 
    rng.NumberFormat = "#,##0" 
End Sub 

如果您有其他数你不想用“'分隔的格式它不会这样做,因为它用”'“替换默认的Excel分隔符。