返回列表 上一主題 發帖

[發問] 請教新增表單編號問題

回復 1# afu9240
  1. TextBox6.Value = Format(Worksheets("叫修明細").Cells(x, 1) + 1, "000")
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

  1. Private Sub CommandButton4_Click() 'clear
  2.     TextBox11.Text = ""
  3.     TextBox10.Text = ""
  4.     TextBox1.Text = ""
  5.     Image1.Picture = LoadPicture
  6.     With ListBox1
  7.     'If Selection.Count > 7 Then
  8.   '  .List = Selection.Value
  9.   '  Else
  10.     .Clear
  11.    ' .AddItem Selection
  12.    ' End If
  13.    ' .ColumnCount = Selection.Columns.Count
  14.     End With
  15.    
  16. End Sub
複製代碼
回復 4# afu9240
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 9# afu9240

是這樣嗎?
  1. Sub old() '年齡自動代入
  2.     Dim x1, x2, i As Integer
  3.     Cells(1, 5) = Now()
  4.     'x1 = YearFrac(Now(), 0) '這裡錯誤
  5.     'x1 = Application.WorksheetFunction.YearFrac(Now(), 0)
  6.     X = 2
  7.     Do
  8.         Cells(X, "C") = "=AGE(RC[-1])"  'RC[-1] R1C1的格式參照法
  9.         X = X + 1
  10.     Loop Until Cells(X, "B") = ""
  11. End Sub
  12. '***'Module1(一般模組)的程式碼
  13. '**自訂函數
  14. Function AGE(D1)  
  15.     AGE = "#NA"
  16.     Application.Volatile (False)
  17.     If IsDate(D1) And D1 > 0 Then AGE = DateDiff("YYYY", D1, Date)
  18. End Function
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 9# afu9240
  1. Function AGE(D1 As Range)         'Module1(一般模組)
  2.     AGE = "#NA"
  3.     Application.Volatile (False)
  4.     If IsDate(D1) And D1 > 0 Then
  5.         AGE = DateDiff("m", D1, Date)
  6.         AGE = Round(Int(AGE / 12), 0) & "." & AGE - (Round(Int(AGE / 12), 0) * 12)  ' 剩餘月份的小數點
  7.         'AGE = Round((AGE / 12), 2)   '10進位的小數點
  8.    End If
  9. End Function
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 11# afu9240
  1. '** Val(文字) >  轉換數字******************
  2.             AGE = Val(Round(Int(AGE / 12), 0) & "." & AGE - (Round(Int(AGE / 12), 0) * 12))  ' 剩餘月份的小數點
  3.             
  4.             '**10進位的小數點***平均年齡較為準確  *****************
  5.             AGE = Round((AGE / 12), 2)   '10進位的小數點
  6.             '*******************************************
複製代碼
  1. Sub 平均年齡()
  2.     Dim aa As Range
  3.     Cells(1, 8) = Now()
  4.     'Times = Cells(65536, x + 1).End(xlUp).Row
  5.     Set aa = Range("d2:d" & [d2].End(xlDown).Row) '所有加總範圍
  6.    
  7.     Sheets("工作表1").Cells(9, 9) = Application.WorksheetFunction.Sum(aa) / aa.Count
  8. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 13# afu9240
給的程式碼請多了解才會為己用
  1. '** Val(文字) >  轉換數字****是因為funtion傳回文字 ,SUM()無法加總,而修改的
  2.             AGE = Val(Round(Int(AGE / 12), 0) & "." & AGE - (Round(Int(AGE / 12), 0) * 12))  ' 剩餘月份的小數點

  3.             '**10進位的小數點***平均年齡較為準確  *****************
  4.             AGE = Round((AGE / 12), 2)   '10進位的小數點    'funtion傳回數字 ,SUM()可以加總不必修改
  5.             '******************************************
複製代碼

ˋ此程式碼有註解,請再了解看看 ,二選一使用
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2018-1-6 08:02 編輯

回復 16# afu9240
  1. Function AGE(D1 As Date)     'Module1(一般模組)
  2.         Application.Volatile (False)
  3.         If IsDate(D1) And D1 > 0 Then
  4.             AGE = DateDiff("m", D1, Date)
  5.             'AGE = Round(Int(AGE / 12), 0) & "." & AGE - (Round(Int(AGE / 12), 0) * 12)  ' 小數點為剩餘月份
  6.             '***此AGE的程式碼中**  & "." & ** 傳回文字不能計算,用VAL()函數將文字轉為數字,可計算
  7.             AGE = Val(Round(Int(AGE / 12), 0) & "." & AGE - (Round(Int(AGE / 12), 0) * 12))  ' 小數點為剩餘月份
  8.             
  9.             'AGE = Round((AGE / 12), 2)   '小數點為10進位  '***此AGE傳回數字,可計算
  10.             
  11.        End If
  12. End Function
複製代碼
  1. Private Sub CommandButton1_Click()
  2.     With Worksheets("人員年資分析表")
  3.         If .AutoFilterMode Then .UsedRange.AutoFilter
  4.     End With
  5.     End
  6. End Sub
  7. 'Private Sub CommandButton4_Click() '*****
  8. Private Sub ComboBox4_Change()  '可改用Change不須再按查詢
  9.     Dim Rng As Range, AGE_Average As Double
  10.     'If ComboBox4.ListIndex = -1 Then MsgBox "請輸入正確的值": Exit Sub
  11.     If ComboBox4.ListIndex = -1 Then Exit Sub        '.ListIndex = -1 不在清單的內容
  12.     Set Rng = Worksheets("人員年資分析表").Range("A2")
  13.     If Rng.Parent.AutoFilterMode Then Rng.AutoFilter   '取消自動篩選
  14.     Set Rng = Range(Rng, Rng.End(xlToRight).End(xlDown))
  15.     Rng.AutoFilter 1, ComboBox4.Value
  16.     Set Rng = Range(Rng.Cells(2, 1), Rng.End(xlToRight).End(xlDown)).SpecialCells(xlCellTypeVisible)
  17.     AGE_Average = Round(Application.WorksheetFunction.Average(Rng.Columns("G")), 2)
  18.     MsgBox ComboBox4 & " 部門" & vbLf & "平均年齡 " & AGE_Average
  19.    
  20.     With Worksheets("工作表1")
  21.         .Cells.Clear
  22.         Rng.Copy .[a1]
  23.         With .Range("g1", .Range("g1").End(xlDown).Address)
  24.             .Cells(.Count + 1) = "=Average(" & .Cells.Address & ")"
  25.            .Cells(.Count + 1).NumberFormatLocal = "0.00_)"
  26.         End With
  27.     End With
  28. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題