返回列表 上一主題 發帖

隨時新增欄位問題

感謝hugh0620 的回覆  小弟試過後發現 每個月的一號有些月份不會顯示出來說  
像2011年就不行了>"<
WOW

TOP

回復 3# g93353

有再稍微看過樓主要求~ 好像是要把每月的1號帶出來~
可使用下列的方式~
若不用帶出每月1號的資料~ 就採用上面第一個模組~
  1. Sub EX()
  2. A = InputBox("請輸入年份")
  3. B = InputBox("請輸入月份")

  4. If Len(A) = 4 And (Len(B) = 1 Or Len(B) = 2) Then
  5. A1 = DateValue(A & "年" & "1月" & "1日")
  6. A2 = DateValue(A & "年" & "2月" & "1日")
  7. A3 = DateValue(A & "年" & "3月" & "1日")
  8. A4 = DateValue(A & "年" & "4月" & "1日")
  9. A5 = DateValue(A & "年" & "5月" & "1日")
  10. A6 = DateValue(A & "年" & "6月" & "1日")
  11. I = 0
  12. Sheet1.Rows("1:1").ClearContents
  13. Select Case B

  14. Case 1
  15.      Do Until Month(A1 + I) > 1
  16.         If Weekday(A1 + I, 2) = 7 Or (Month(A1 + I) = 1 And Day(A1 + I) = 1) Then
  17.            If Sheet1.Range("A1") = "" Then
  18.               Sheet1.Range("A1") = A1 + I
  19.            Else
  20.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  21.            End If
  22.         End If
  23.      I = I + 1
  24.      Loop
  25.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A2
  26.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A3
  27.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A4
  28.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A5
  29.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A6
  30. Case 2
  31.      Do Until Month(A1 + I) > 2
  32.         If Weekday(A1 + I, 2) = 7 Or (Month(A1 + I) = 2 And Day(A1 + I) = 1) Then
  33.            If Sheet1.Range("A1") = "" Then
  34.               Sheet1.Range("A1") = A1 + I
  35.            Else
  36.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  37.            End If
  38.         End If
  39.      I = I + 1
  40.      Loop
  41.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A3
  42.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A4
  43.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A5
  44.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A6
  45. Case 3
  46.      Do Until Month(A1 + I) > 3
  47.         If Weekday(A1 + I, 2) = 7 Or (Month(A1 + I) = 3 And Day(A1 + I) = 1) Then
  48.            If Sheet1.Range("A1") = "" Then
  49.               Sheet1.Range("A1") = A1 + I
  50.            Else
  51.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  52.            End If
  53.         End If
  54.      I = I + 1
  55.      Loop
  56.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A4
  57.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A5
  58.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A6
  59. Case 4
  60.      Do Until Month(A1 + I) > 4
  61.         If Weekday(A1 + I, 2) = 7 Or (Month(A1 + I) = 4 And Day(A1 + I) = 1) Then
  62.            If Sheet1.Range("A1") = "" Then
  63.               Sheet1.Range("A1") = A1 + I
  64.            Else
  65.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  66.            End If
  67.         End If
  68.      I = I + 1
  69.      Loop
  70.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A5
  71.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A6
  72. Case 5
  73.      Do Until Month(A1 + I) > 5
  74.         If Weekday(A1 + I, 2) = 7 Or (Month(A1 + I) = 5 And Day(A1 + I) = 1) Then
  75.            If Sheet1.Range("A1") = "" Then
  76.               Sheet1.Range("A1") = A1 + I
  77.            Else
  78.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  79.            End If
  80.         End If
  81.      I = I + 1
  82.      Loop
  83.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A6
  84. Case 6
  85.      Do Until Month(A1 + I) > 6
  86.         If Weekday(A1 + I, 2) = 7 Or (Month(A1 + I) = 6 And Day(A1 + I) = 1) Then
  87.            If Sheet1.Range("A1") = "" Then
  88.               Sheet1.Range("A1") = A1 + I
  89.            Else
  90.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  91.            End If
  92.         End If
  93.      I = I + 1
  94.      Loop

  95. End Select

  96. End If


  97. End Sub
複製代碼
學習才能提升自己

TOP

先來研究看看  謝謝hugh0620大大!!!!!!!!!
WOW

TOP

回復 1# g93353

樓主~ 這個是可以被使用的~ 只是它的防呆~ 沒有寫的很好~
可以試看看~ 應該可以符合你要的結果~
  1. Sub EX()
  2. A = InputBox("請輸入年份")
  3. B = InputBox("請輸入月份")

  4. If Len(A) = 4 And (Len(B) = 1 Or Len(B) = 2) Then
  5. A1 = DateValue(A & "年" & "1月" & "1日")
  6. A2 = DateValue(A & "年" & "2月" & "1日")
  7. A3 = DateValue(A & "年" & "3月" & "1日")
  8. A4 = DateValue(A & "年" & "4月" & "1日")
  9. A5 = DateValue(A & "年" & "5月" & "1日")
  10. A6 = DateValue(A & "年" & "6月" & "1日")
  11. I = 0
  12. Sheet1.Rows("1:1").ClearContents
  13. Select Case B

  14. Case 1
  15.      Do Until Month(A1 + I) > 1
  16.         If Weekday(A1 + I, 2) = 7 Then
  17.            If Sheet1.Range("A1") = "" Then
  18.               Sheet1.Range("A1") = A1 + I
  19.            Else
  20.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  21.            End If
  22.         End If
  23.      I = I + 1
  24.      Loop
  25.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A2
  26.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A3
  27.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A4
  28.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A5
  29.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A6
  30. Case 2
  31.      Do Until Month(A1 + I) > 2
  32.         If Weekday(A1 + I, 2) = 7 Then
  33.            If Sheet1.Range("A1") = "" Then
  34.               Sheet1.Range("A1") = A1 + I
  35.            Else
  36.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  37.            End If
  38.         End If
  39.      I = I + 1
  40.      Loop
  41.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A3
  42.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A4
  43.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A5
  44.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A6
  45. Case 3
  46.      Do Until Month(A1 + I) > 3
  47.         If Weekday(A1 + I, 2) = 7 Then
  48.            If Sheet1.Range("A1") = "" Then
  49.               Sheet1.Range("A1") = A1 + I
  50.            Else
  51.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  52.            End If
  53.         End If
  54.      I = I + 1
  55.      Loop
  56.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A4
  57.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A5
  58.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A6
  59. Case 4
  60.      Do Until Month(A1 + I) > 4
  61.         If Weekday(A1 + I, 2) = 7 Then
  62.            If Sheet1.Range("A1") = "" Then
  63.               Sheet1.Range("A1") = A1 + I
  64.            Else
  65.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  66.            End If
  67.         End If
  68.      I = I + 1
  69.      Loop
  70.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A5
  71.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A6
  72. Case 5
  73.      Do Until Month(A1 + I) > 5
  74.         If Weekday(A1 + I, 2) = 7 Then
  75.            If Sheet1.Range("A1") = "" Then
  76.               Sheet1.Range("A1") = A1 + I
  77.            Else
  78.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  79.            End If
  80.         End If
  81.      I = I + 1
  82.      Loop
  83.      Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A6
  84. Case 6
  85.      Do Until Month(A1 + I) > 6
  86.         If Weekday(A1 + I, 2) = 7 Then
  87.            If Sheet1.Range("A1") = "" Then
  88.               Sheet1.Range("A1") = A1 + I
  89.            Else
  90.               Sheet1.Range("IV1").End(xlToLeft).Offset(0, 1) = A1 + I
  91.            End If
  92.         End If
  93.      I = I + 1
  94.      Loop

  95. End Select

  96. End If


  97. End Sub
複製代碼
學習才能提升自己

TOP

        靜思自在 : 待人退一步,愛人寬一寸,就會活得很快樂。
返回列表 上一主題