2017-09-18 50 views
-1

我有一個Excel工作表中的範圍,硬編碼值,以百萬計。我如何編寫一個VBA宏來將選定範圍除以一百萬?VBA:宏分割範圍百萬

此致敬禮

+0

手動使用宏錄像機,它會告訴你一種代碼的方式。 – braX

回答

8

沒有宏需要。

  • 寫1,000,000一個細胞
  • 複製該小區
  • 選擇具有硬編碼值
  • Paste Special和範圍選擇Divide
  • OK

enter image description here

+0

在我使用Excel的幾年中,除了將它用作Paste as Values之外,我始終忽略了Paste Special。這是很酷的功能,感謝分享! – 0x11

3

對於像這樣簡單的事情,我會在該範圍附近的區域(如果一行,旁邊是一列等)下面寫一個公式,然後複製/粘貼爲值並替換原始區域。

如果您確實想爲此創建一個宏,您可以將一個範圍指定給一個變量,包括所選範圍。從那裏,通過在範圍內的每個細胞循環和更換所需的值值(像這樣):

Dim cell as Object 

For Each cell in Selection 
    cell.value = cell.value/1000000 
Next cell 
2

使用自定義數字格式,使看起來象是由一百萬分同時保持細胞真正的原始基礎價值。

sub meh() 
    selection.numberformat = "0,,\M" 
end sub 

我已經添加了中號作爲一個單元的後綴。

4

沒有循環需要

Sub MyDivide 
    Selection.Value = Selection.Parent.Evaluate("INDEX(" & Selection.address & "/1000000,)") 
End Sub 

只需選擇你想要的細胞和運行子。

+0

對於單個單元格或單元格的標準矩形很不錯,但對於非連續範圍不是非常友好。 (如果選擇的不是連續的範圍,則顯示爲清除單元格,我認爲是由於'Selection.Address'中的','被錯誤解釋。) – YowE3K

+0

這是正確的,它需要連續。 @ YowE3K –