2016-02-29 119 views
1

我有兩張工作表,其中包含來自不同來源的數據。我需要將數據複製到單個工作表並刪除重複項。爲了實現這個目標,我需要在兩張工作表上都格式化所有數據。除了我遇到的一列數據外,所有這些都已經編碼。這些列包含百分比表示。在工作表A中,該值顯示爲.4386,相當於43.86%。我使用此代碼,該值轉換沒有問題:獲取以正確格式顯示的百分比值

Worksheets("Verification").Range("F2:F2000").NumberFormat = "0.00%"

在工作表B中,相同的數據被示出爲43.86,但上面的代碼它變爲4386.00%。我也嘗試將此行更改爲.NumberFormat = "General\%",這幾乎可行,但返回值爲44%。我需要添加哪些代碼才能在工作表B上顯示43.86%?

+0

'.NumberFormat = 「常規%」'爲我工作。 – user1274820

+0

@ user1274820好的。我在這裏添加兩件事。首先,(直到現在我從來不知道),列的寬度很重要。我擴大了寬度,它確實顯示了43.86%。但是,列中的一些其他單元格的數據顯示爲25.1%。我需要這個顯示爲25.10%。我需要保留兩位小數點。我怎麼能用'.NumberFormat =「General \%」'做到這一點,而不必將格式應用於單元格? –

+0

如果它們已經是百分比格式,請嘗試'0.00 \%'。否則,使用'0.00%'。你可以像拉爾夫所說的那樣,通過檢查它們是否小於1,或者你已經知道這些表格是如何格式化的。 – user1274820

回答

3

對不起,評論中的回覆很慢 - 我只提交一個答案。

就像拉爾夫說的那樣,最好確保它們是相同的數字。

43.1.431是不一樣的數字。

For Each c In [A1:A10] 
    If c.Value < 1 Then 
     c.Value = c.Value * 100 
    End If 
    c.NumberFormat = "0.00\%" 
Next c 

結果:

Results

+0

當我嘗試這個時,我收到一個指向「c」的變量未定義錯誤。 –

+0

'Dim c'如果使用明確的選項... – user1274820

+0

代碼僅僅是一個例子。您將需要遍歷範圍並相應地修改數據。我不知道你的範圍是可變的,或者他們是如何設置的。如果它是'F2:F2000',你可以使用它而不是'[A1:A10]'。 – user1274820

1

您在工作表B上的工作表A is the same data [...] as 43.86上指出.4386。因此,Excel將43.86轉換爲4386.00%是正確的。也許你需要條件格式:當數字小於或等於1時,將其格式化爲"0.00%",否則將其格式化爲"0.00""%"""

但是,我認爲在使用此解決方案比較工作表之間的數據時會遇到問題。因此,我會先將表B中的所有數字除以100,以使它們具有可比性。

請注意,只是讓數字「看起來相似」,他們是不一樣的。例如:在單元格A1中寫入值1000,在單元格B1中寫入1000.然後將A1的數字格式更改爲0,將B1的數字格式更改爲0,(或在美國以外的地方更改爲0.)。 A1將顯示1000,而B1將顯示1。如果您在單元格C1 =A1=B1中詢問,您將得到一個TRUE作爲答案。

+0

我確實說錯了。兩張工作表(A和B)來自兩個不同的團體,他們希望以不同的格式出現43.86%用於他們自己的目的。 A組需要它顯示爲.4386,而B組需要它顯示爲整數(43.86)。我的目標是將這兩組數字轉換爲我需要的格式,以便比較一張工作表上兩個工作表中的所有數據。這是將要比較的列之一(總共有10個值將與我進行比較,但這是兩個組中格式化值不同的唯一值)。 –