返回列表 上一主題 發帖

[發問] 請問如何將內容有中華民國日期的字眼抓出來轉成西元日期?

[發問] 請問如何將內容有中華民國日期的字眼抓出來轉成西元日期?

我想要在B欄顯示A欄對應的西元日期
請問有辦法做到嗎?

Book1.rar (5.6 KB)
字典兩各字 還真難理解

回復 1# freeffly
  1. Sub Ex()
  2.     Dim R As Range, xl_Year As Integer
  3.     Set R = [A1]
  4.     Do While R <> ""
  5.         If InStr(R, "中華民國") Then
  6.         'InStr 函數 傳回在某字串中一字串的最先出現位置,此位置為 Variant (Long)。
  7.             xl_Year = Mid(R, InStr(R, "中華民國") + 4, InStr(R, "年") - InStr(R, "中華民國") - 4) '年度
  8.             R = Replace(R, xl_Year, xl_Year + 1911)
  9.             R = Replace(R, "中華民國", "")
  10.         End If
  11.         Set R = R.Offset(1)
  12.         Loop
  13. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 2# GBKEE


    謝謝超版相救
   不過這各與我要的有點差異
   我是要在B欄做一個西元日期
   
   因為我要對這些資料排序
   
   剛剛想到用mid+find+Right+left這幾各函數的方式去做
   暫時算是先解決了
字典兩各字 還真難理解

TOP

本帖最後由 GBKEE 於 2013-5-30 17:48 編輯

回復 3# freeffly
  1. Sub Ex()
  2.     Dim i  As Long, xl_Year As Variant
  3.     With Range("B1:B" & [A1].End(xlDown).Row)
  4.         .Cells = "=MID(RC[-1],10,10)"
  5.         .Value = .Value
  6.         .Replace "發", ""
  7.         For i = 1 To .Count
  8.             xl_Year = Split(.Cells(i), "年")
  9.             xl_Year(0) = xl_Year(0) + 1911 & "年"
  10.             .Cells(i) = Trim(Join(xl_Year, ""))
  11.         Next
  12.     End With
  13. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 HSIEN6001 於 2013-5-30 19:59 編輯

回復 3# freeffly

也許這是你要的  ^+++^
   =MID(A1,FIND("年",A1)-3,3)+1911&"/"&MID(A1,FIND("年",A1)+1,(FIND("月",A1)-FIND("年",A1)-1))&"/"&MID(A1,FIND("月",A1)+1,(FIND(" ",A1)-FIND("月",A1)-2))
=2013/2/23

TOP

回復 1# freeffly

play.gif
學海無涯_不恥下問

TOP

回復 4# GBKEE


    再次感謝不過他不算日期格式
   用來排序無法達到效果
字典兩各字 還真難理解

TOP

本帖最後由 freeffly 於 2013-5-31 09:18 編輯

回復 5# HSIEN6001


    跟我後來弄的公式很像
   感謝

我使用的函數多了點

日期.rar (13.31 KB)
字典兩各字 還真難理解

TOP

回復 6# Hsieh


    謝謝超版
   這各方法不錯
   沒有用到函數
   
   用google大神也找到以前超版對其他人解的例子有講到EMD
    原來這各是處理民國的方式
   學習了
字典兩各字 還真難理解

TOP

回復 7# freeffly
  1. Sub Ex_日期數值()
  2.     Dim i  As Long, xl_Year As Variant
  3.     With Range("B1:B" & [A1].End(xlDown).Row)
  4.         .Cells = "=MID(RC[-1],10,10)"
  5.         .Value = .Value
  6.         .Replace "發", ""
  7.         .Cells(1).Select
  8.         For i = 1 To .Count
  9.             xl_Year = Split(.Cells(i), "年")
  10.             xl_Year(0) = xl_Year(0) + 1911 & "年"
  11.             .Cells(i) = Trim(Join(xl_Year, ""))
  12.             DoEvents
  13.             Application.SendKeys "{F2}"
  14.             Application.SendKeys "~"
  15.             DoEvents
  16.         Next
  17.         .Cells(1).Select
  18.         .Cells.Sort Key1:=.Cells(1), Order1:=xlAscending, Header:=xlNo
  19.     End With
  20. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 忘功不忘過,忘怨不忘恩。
返回列表 上一主題