2014-09-04 98 views
0

在Excel中,我試圖根據當前年份和下一個編號創建一個自動編號單元格。實施例在表14/001第一行,下一個行應14/002 ...自動編號重置

我已格式化我片作爲表,式I具有在細胞A2=TEXT(TODAY(),"yy")& "/" &TEXT(ROW(A1),"000")

當我跨表中的行選中併到達行的最後一個單元時,它將默認爲下一行,創建一個新行並向下複製公式,並按預期方式遞增。這部分工作完美。

我不知道該怎麼辦是當年份到2015年,我該如何重置/00?到/001等2015年1月1日的下一行應該讀15/001

+1

我希望你認識到,在2015年1月的第一天,**所有**列中的單元格將切換到* 15/xxx * – 2014-09-04 16:18:55

+0

我只能想到做這件事的第一行是一個「種子」行 - 沒有公式 - 允許後續行中的公式進行文本比較,以決定是否重置計數器並遞增年份代碼。 – blackworx 2014-09-04 16:22:15

回答

0
 
    =TEXT(TODAY(),"yy")& "/" & 
        if(left(previous_cell,2)=TEXT(TODAY(),"yy"), 
         TEXT(ROW(A1),"000"), 
         "001") 
+0

將不起作用 - IF函數將始終返回true,即使沒有,您也只會在第一行上獲得「001」,並且每年會發生一次更改。之後的行將恢復爲僅顯示當前行號,例如, 1月1日15/001和1月2日15/367。 – blackworx 2014-09-04 16:30:25

+0

是不是所需的結果? – user3616725 2014-09-04 19:35:20

+0

個人會認爲要求是15/001,15/002等。你的fmla中的If函數總是會返回True,導致數字只是繼續上升,並且從不復位,所以點沒有實際意義。 – blackworx 2014-09-05 09:50:14

0

既然你願意接受一個VBA解決方案,這是假定自動數字將在一個柱走。手動將A1中的第一個值。然後在工作表中的代碼區域中輸入以下事件宏

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    Dim A As Range, oldYr As String, yr As String, N As Long, oldN As Long 
    Set A = Range("A2:A" & Rows.Count) 
    If Intersect(Target, A) Is Nothing Then Exit Sub 
    If Target.Value <> "" Or Target.Offset(-1, 0) = "" Then Exit Sub 
    Cancel = True 
    ary = Split(Target.Offset(-1, 0).Value, "/") 
    oldYr = ary(0) 
    oldN = CLng(ary(1)) 
    yr = Right(CStr(Year(Date)), 2) 
    If yr = oldYr Then 
     Target.Value = yr & "/" & Format(oldN + 1, "000") 
    Else 
     Target.Value = yr & "/" & Format(1, "000") 
    End If 
End Sub 

如果你在第一個空單元格中列A雙擊,下一自動編號將在該單元格中輸入。

因爲它是工作表的代碼,這是非常容易安裝和自動使用:

  1. 右鍵單擊靠近Excel窗口底部的標籤名稱
  2. 選擇查看代碼 - 這帶來了一個VBE窗口
  3. 粘貼的東西並關閉VBE窗口

如果您有任何問題,首先嚐試在一個審判工作。

如果保存工作簿,宏將與其一起保存。 如果您在2003年以後使用的是Excel版本,則必須將該文件保存爲.xlsm而非 。XLSX

要刪除宏:

  1. 彈出VBE窗口如上
  2. 清晰的代碼進行
  3. 關閉VBE窗口

要了解更多關於宏一般,參見:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解更多有關事件宏(工作表的代碼),請參閱:

http://www.mvps.org/dmcritchie/excel/event.htm

宏必須爲此工作啓用!