2013-04-24 128 views
0

我對Excel有一個非常惱人的問題:我有一些VBA宏,其目的是用一些內容填充其他單元格。我的問題是,Excel不斷改變一些單元格的格式!謝謝,但我沒有要求這個,每次它試圖幫助我,這隻會讓事情變得更糟。
而當我右鍵單擊單元格設置標準格式,然後再次嘗試我的宏...它回到Excel的變化!Excel - VBA:爲我的表單中的所有單元格設置標準格式

這裏是我遇到的問題的一個例子:
enter image description here

另一個例子是在一些小數位數:如果我的宏複製/粘貼與11位小數的數字,Excel是剛會保持7!很煩人!

+1

使用cstr函數將分割轉換爲字符串。 – Santosh 2013-04-24 04:01:28

回答

2

你只能在其中加入一個字符串變量,例如複製你的價值觀

dim s as string 
s = cstr(myrange.value) 
mysecondrange.value = s 

如果問題仍然存在,則代碼的另一部分存在問題。

另一個問題可能是新單元格格式化爲一般,在這種情況下,excel將始終假定它知道更好地將格式更改爲套件。根據您的目標,您可能需要使用相同的VBA代碼自行設置格式。

mysecondrange.numberformat = "@" 'to text 
'or 
mysecondrange.numberformat = myrange.numberformat 'to other cells format 
0

一種技術是保持您的基礎數據與格式化數據分開。首先創建基本的數據表,你不關心formmatting。然後用公式來創建演示文稿表格,這些公式可以從基礎數據表中獲取數據,並將這些演示文稿表格完全鎖定。即使Excel無法重新格式化完全鎖定的工作表。

0

您使用的是粘貼粘貼特殊

前者相當於PasteSpecial xlPasteAll其中包含格式。

也許你的代碼可以使用Range.PasteSpecial xlPasteValuesRange.PasteSpecial xlPasteFormulas

+0

感謝您的回答,實際上我只是使用這種表達式:「sMain.Range(」A29「)。Value = Range(rowMax).Offset(0,-8).Value」兩個單元格內容之間的等號。 – Phalanx 2013-04-24 08:22:17

+0

也許你可以修改工作表的** Style **以包含你想要的數字格式? – 2013-04-24 08:37:56

相關問題