2015-10-14 101 views
0

我有一個要求,只要打開表格就將受保護的圖紙單元格式更改爲文本(從日期開始)。我的意思是說,價值應該出現在表格中。Excel宏將單元格格式更改爲受保護表格的文本

我已將我的代碼保留在ThisWorkBook的Workbook_Open()事件中,以及下面給出的步驟順序。

解除的表:gSampleSheet.Unprotect Password:="MyPassword"

改變單元格的格式:gSampleSheet.Range("K1:K100").NumberFormat = "Text"

保護表:gSampleSheet.Protect DrawingObjects:=False, contents:=True, Scenarios:=True, Password:="MyPassword"

當輸入在所述細胞中的日期值,那麼它應該被轉換爲文本格式並且該值應該按原樣顯示。

即,如果輸入12/12/15,12.12.15,12-12-15,12-Dec-15,那麼它們應該在輸入時顯示(而不是改變爲日期格式)。

但是,單元顯示了一些隨機值,如T2015tx或其他一些值。請幫我解決這個問題,因爲我正在努力找出根本原因。

+0

當你說值應顯示爲進入,你的意思是你想真正看到它,因爲它是寫(15年12月12日或15年12月12日或12-12 -15或12-Dec-15),或者你想要數字表示出現42354例如? –

+0

我想顯示字面,因爲它寫了,幸運的是我。 – Karthikeya

回答

1

嘗試:

gSampleSheet.Range("K1:K100").NumberFormat = "@" 
+0

儘管這是獲取真正文本格式的正確語法,但它不會保留輸入的日期,而是將日期轉換爲Excel中的數字等值。 –

+1

那麼,如果在輸入日期之前應用格式,則不會發生日期轉換,文本也不會更改。 –

+0

是的,那是真的。我打算向OP提出建議,但我正在等待他對我的評論的迴應,以便清楚地知道他需要什麼。 –

相關問題