返回列表 上一主題 發帖

[發問] 請指導VBA語法,謝謝

回復 2# idnoidno
試試
  1. Sub finddate()
  2. myrows = Worksheets("工作表1").Cells(Rows.Count, 1).End(xlUp).Row
  3. 日期 = [i2] & "/" & [j2]
  4. For i = 2 To myrows
  5.     If 日期 = Format(Cells(i, "A"), "yyyy/mm") Then
  6.         Cells(2, 12) = Cells(i, 2)
  7.     End If
  8. Next
  9. End Sub
複製代碼

TOP

本帖最後由 lpk187 於 2015-4-16 13:52 編輯

回復 7# idnoidno

下圖是你上傳的檔案沒修改過,
可以比對成功
裡面我多一個變數"A欄儲存格"是觀察變數用的,可刪除
   

TOP

本帖最後由 lpk187 於 2015-4-16 13:56 編輯

回復 8# idnoidno


    若不要0X月,也可以"yyyy/m"
就會是3月了不會是03月,10月也會是10月

TOP

回復 8# idnoidno

讓他比對成功後結束程序Sub
  1. Sub finddate()
  2. myrows = Worksheets("工作表1").Cells(Rows.Count, 1).End(xlUp).Row
  3. 日期 = [i2] & "/" & [j2]
  4. For i = 2 To myrows
  5.     A欄儲存格 = Format(Cells(i, "A"), "yyyy/m")
  6.     If 日期 = Format(Cells(i, "A"), "yyyy/m") Then
  7.         Cells(2, 12) = Cells(i, 2)
  8.         End '加這個End比對成功後就結束程序
  9.     End If
  10. Next
  11. End Sub
複製代碼

TOP

回復 15# idnoidno


    For i = 2 To myrows
多了一個S

TOP

回復 15# idnoidno


    mydate = Worksheets("工作表2").Cells(1.2) & "/" & Worksheets("工作表2").Cells(2. 2)應該最 " , "逗點

TOP

回復 19# idnoidno
[A2]=Range("A2")=Cells(2,1),這三種寫法都可以
  1. Sub caldata()
  2. Dim myrow As Integer
  3. Dim mycolumn As Integer
  4. Dim i As Integer
  5. Dim j As Integer
  6. myrow = Worksheets("工作表1").Cells(Rows.Count, 1).End(xlUp).Row
  7. mycolumn = Worksheets("工作表1").Cells(1, Columns.Count).End(xlToLeft).Column
  8. mydate = Worksheets("工作表2").Cells(2, 1) & "/" & Worksheets("工作表2").Cells(2, 2)
  9. For i = 2 To myrow
  10.     If mydate = Format(Worksheets("工作表1").Cells(i, 1), "yyyy/m") Then
  11.      For j = 4 To mycolumn + 2
  12.         Worksheets("工作表2").Cells(1, j) = Left(Worksheets("工作表1").Cells(1, j - 2), 2) & "日平均量"
  13.         Worksheets("工作表2").Cells(2, j) = Format(Worksheets("工作表1").Cells(i + 1, 1), "yyyy/m/d")
  14.      Next
  15.      End '結束程序
  16.     End If
  17. Next
  18. End Sub
複製代碼

TOP

回復 20# lpk187

執行結果如下,是這樣嗎?
   


執行時善用F8單行執行,開啟區域變數視窗來觀察變化會更容易瞭解錯在哪裡!
把不知道的值化成變數來觀察例如:AAA=Left(Worksheets("工作表1").Cells(1, j - 2), 2) & "日平均量"

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題