Discussion:
將西元年轉成民國年
(时间太久无法回复)
Husqvarna
2005-12-20 03:40:02 UTC
Permalink
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。

謝謝!
crdotlin
2005-12-20 04:36:02 UTC
Permalink
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/


"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
Husqvarna
2005-12-20 05:11:02 UTC
Permalink
如果沒有呢?

"crdotlin" 來函:
Post by crdotlin
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
crdotlin
2005-12-20 06:09:02 UTC
Permalink
抱歉沒看清楚需求
請將此程序複製放在相應的工作表模組中
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.Value = VBA.DateSerial(.Value, 1, 1)
.NumberFormatLocal = """民國""e"
End If
End If
End With
Application.EnableEvents = True
End Sub
'備用萬一測試失敗請執行一次此程序
Sub ttt()
Application.EnableEvents = True
End Sub
請參考
希望有人能不用VBA可以做到
--
http://crdotlin.vgocities.net/plog/


"Husqvarna" 來函:
Post by Husqvarna
如果沒有呢?
"crdotlin" 來函:
Post by crdotlin
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
Husqvarna
2005-12-20 06:17:02 UTC
Permalink
這個執行後變成輸入1980 => 民國1980 ,好像沒有轉成民國年。
是不是要加個 -1911之類的?

謝謝!

"crdotlin" 來函:
Post by crdotlin
抱歉沒看清楚需求
請將此程序複製放在相應的工作表模組中
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.Value = VBA.DateSerial(.Value, 1, 1)
.NumberFormatLocal = """民國""e"
End If
End If
End With
Application.EnableEvents = True
End Sub
'備用萬一測試失敗請執行一次此程序
Sub ttt()
Application.EnableEvents = True
End Sub
請參考
希望有人能不用VBA可以做到
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
如果沒有呢?
"crdotlin" 來函:
Post by crdotlin
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
crdotlin
2005-12-20 06:33:02 UTC
Permalink
請檢查這個敘述
.NumberFormatLocal = """民國""e"
這個格式應該會將西元換成民國年
--
http://crdotlin.vgocities.net/plog/


"Husqvarna" 來函:
Post by Husqvarna
這個執行後變成輸入1980 => 民國1980 ,好像沒有轉成民國年。
是不是要加個 -1911之類的?
謝謝!
"crdotlin" 來函:
Post by crdotlin
抱歉沒看清楚需求
請將此程序複製放在相應的工作表模組中
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.Value = VBA.DateSerial(.Value, 1, 1)
.NumberFormatLocal = """民國""e"
End If
End If
End With
Application.EnableEvents = True
End Sub
'備用萬一測試失敗請執行一次此程序
Sub ttt()
Application.EnableEvents = True
End Sub
請參考
希望有人能不用VBA可以做到
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
如果沒有呢?
"crdotlin" 來函:
Post by crdotlin
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
Husqvarna
2005-12-20 08:01:02 UTC
Permalink
都沒錯,只是還是show出"民國1980"出來。


"crdotlin" 來函:
Post by crdotlin
請檢查這個敘述
.NumberFormatLocal = """民國""e"
這個格式應該會將西元換成民國年
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
這個執行後變成輸入1980 => 民國1980 ,好像沒有轉成民國年。
是不是要加個 -1911之類的?
謝謝!
"crdotlin" 來函:
Post by crdotlin
抱歉沒看清楚需求
請將此程序複製放在相應的工作表模組中
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.Value = VBA.DateSerial(.Value, 1, 1)
.NumberFormatLocal = """民國""e"
End If
End If
End With
Application.EnableEvents = True
End Sub
'備用萬一測試失敗請執行一次此程序
Sub ttt()
Application.EnableEvents = True
End Sub
請參考
希望有人能不用VBA可以做到
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
如果沒有呢?
"crdotlin" 來函:
Post by crdotlin
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
crdotlin
2005-12-20 08:19:01 UTC
Permalink
.NumberFormatLocal = "ge"
改這樣看看
--
http://crdotlin.vgocities.net/plog/


"Husqvarna" 來函:
Post by Husqvarna
都沒錯,只是還是show出"民國1980"出來。
"crdotlin" 來函:
Post by crdotlin
請檢查這個敘述
.NumberFormatLocal = """民國""e"
這個格式應該會將西元換成民國年
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
這個執行後變成輸入1980 => 民國1980 ,好像沒有轉成民國年。
是不是要加個 -1911之類的?
謝謝!
"crdotlin" 來函:
Post by crdotlin
抱歉沒看清楚需求
請將此程序複製放在相應的工作表模組中
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.Value = VBA.DateSerial(.Value, 1, 1)
.NumberFormatLocal = """民國""e"
End If
End If
End With
Application.EnableEvents = True
End Sub
'備用萬一測試失敗請執行一次此程序
Sub ttt()
Application.EnableEvents = True
End Sub
請參考
希望有人能不用VBA可以做到
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
如果沒有呢?
"crdotlin" 來函:
Post by crdotlin
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
Husqvarna
2005-12-20 08:30:02 UTC
Permalink
還是不行!

"crdotlin" 來函:
Post by crdotlin
.NumberFormatLocal = "ge"
改這樣看看
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
都沒錯,只是還是show出"民國1980"出來。
"crdotlin" 來函:
Post by crdotlin
請檢查這個敘述
.NumberFormatLocal = """民國""e"
這個格式應該會將西元換成民國年
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
這個執行後變成輸入1980 => 民國1980 ,好像沒有轉成民國年。
是不是要加個 -1911之類的?
謝謝!
"crdotlin" 來函:
Post by crdotlin
抱歉沒看清楚需求
請將此程序複製放在相應的工作表模組中
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.Value = VBA.DateSerial(.Value, 1, 1)
.NumberFormatLocal = """民國""e"
End If
End If
End With
Application.EnableEvents = True
End Sub
'備用萬一測試失敗請執行一次此程序
Sub ttt()
Application.EnableEvents = True
End Sub
請參考
希望有人能不用VBA可以做到
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
如果沒有呢?
"crdotlin" 來函:
Post by crdotlin
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
crdotlin
2005-12-20 08:39:02 UTC
Permalink
Excel版本?
換這個一定OK
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.NumberFormatLocal = """民國""" & """" & (.Value - 1911) & """"
End If
End If
End With
Application.EnableEvents = True
End Sub
--
http://crdotlin.vgocities.net/plog/


"Husqvarna" 來函:
Post by Husqvarna
還是不行!
"crdotlin" 來函:
Post by crdotlin
.NumberFormatLocal = "ge"
改這樣看看
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
都沒錯,只是還是show出"民國1980"出來。
"crdotlin" 來函:
Post by crdotlin
請檢查這個敘述
.NumberFormatLocal = """民國""e"
這個格式應該會將西元換成民國年
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
這個執行後變成輸入1980 => 民國1980 ,好像沒有轉成民國年。
是不是要加個 -1911之類的?
謝謝!
"crdotlin" 來函:
Post by crdotlin
抱歉沒看清楚需求
請將此程序複製放在相應的工作表模組中
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.Value = VBA.DateSerial(.Value, 1, 1)
.NumberFormatLocal = """民國""e"
End If
End If
End With
Application.EnableEvents = True
End Sub
'備用萬一測試失敗請執行一次此程序
Sub ttt()
Application.EnableEvents = True
End Sub
請參考
希望有人能不用VBA可以做到
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
如果沒有呢?
"crdotlin" 來函:
Post by crdotlin
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
Husqvarna
2005-12-20 08:50:02 UTC
Permalink
賓果,行了。

感謝您。

"crdotlin" 來函:
Post by crdotlin
Excel版本?
換這個一定OK
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.NumberFormatLocal = """民國""" & """" & (.Value - 1911) & """"
End If
End If
End With
Application.EnableEvents = True
End Sub
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
還是不行!
"crdotlin" 來函:
Post by crdotlin
.NumberFormatLocal = "ge"
改這樣看看
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
都沒錯,只是還是show出"民國1980"出來。
"crdotlin" 來函:
Post by crdotlin
請檢查這個敘述
.NumberFormatLocal = """民國""e"
這個格式應該會將西元換成民國年
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
這個執行後變成輸入1980 => 民國1980 ,好像沒有轉成民國年。
是不是要加個 -1911之類的?
謝謝!
"crdotlin" 來函:
Post by crdotlin
抱歉沒看清楚需求
請將此程序複製放在相應的工作表模組中
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.Value = VBA.DateSerial(.Value, 1, 1)
.NumberFormatLocal = """民國""e"
End If
End If
End With
Application.EnableEvents = True
End Sub
'備用萬一測試失敗請執行一次此程序
Sub ttt()
Application.EnableEvents = True
End Sub
請參考
希望有人能不用VBA可以做到
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
如果沒有呢?
"crdotlin" 來函:
Post by crdotlin
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
crdotlin
2005-12-20 08:52:02 UTC
Permalink
因為沒有改變輸入值
所以application.enableevents可以不管了
這樣乾淨一點

Private Sub Worksheet_Change(ByVal Target As Range)
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then
.NumberFormatLocal = """民國""" & """" & (.Value - 1911) & """"
End If
End If
End With
End Sub
--
http://crdotlin.vgocities.net/plog/


"Husqvarna" 來函:
Post by Husqvarna
還是不行!
"crdotlin" 來函:
Post by crdotlin
.NumberFormatLocal = "ge"
改這樣看看
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
都沒錯,只是還是show出"民國1980"出來。
"crdotlin" 來函:
Post by crdotlin
請檢查這個敘述
.NumberFormatLocal = """民國""e"
這個格式應該會將西元換成民國年
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
這個執行後變成輸入1980 => 民國1980 ,好像沒有轉成民國年。
是不是要加個 -1911之類的?
謝謝!
"crdotlin" 來函:
Post by crdotlin
抱歉沒看清楚需求
請將此程序複製放在相應的工作表模組中
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target.Cells(1)
.NumberFormatLocal = "G/通用格式"
If IsNumeric(.Value) Then
If .Column = 2 And .Value > 1900 And .Value < 10000 Then '針對B欄,
若A欄請將Column=2改為Column=1
.Value = VBA.DateSerial(.Value, 1, 1)
.NumberFormatLocal = """民國""e"
End If
End If
End With
Application.EnableEvents = True
End Sub
'備用萬一測試失敗請執行一次此程序
Sub ttt()
Application.EnableEvents = True
End Sub
請參考
希望有人能不用VBA可以做到
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
如果沒有呢?
"crdotlin" 來函:
Post by crdotlin
[格式][儲存格][數字]
在類別中找到[日期]
在類型中找到您要的
[確定]即可
--
http://crdotlin.vgocities.net/plog/
"Husqvarna" 來函:
Post by Husqvarna
請問該如何將輸入儲存格的數字,例如:輸入1980後,直接變成 "民國69年"。
謝謝!
Loading...