返回列表 上一主題 發帖

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

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

資料如表格,計算某年某月的日平均量。
I2和J2填入後,自動搜尋數據(當然數據可以再逐筆增加)可以在K2得到答案


Sub finddate()
myrows = Worksheets("工作表1").Cells(Rows.Count, 1).End(x1down).Row
For i = 2 To myrows
    If Year(Cells(i, 1)) = Cells(2, 9).Value And Month(Cells(j, 1)) = Cells(2, 10).Value Then
        Cells(2, 12) = Cells(i, 2)
    End If
Next
End Sub

資料如表格,計算某年某月的日平均量。
I2和J2填入後,自動搜尋數據(當然數據可以再逐筆增加)可以在K2得到 ...
idnoidno 發表於 2015-4-15 23:14


補上附件

YM-test1.rar (16.2 KB)

YY

TOP

回復 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

回復 1# 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, 1), "yyyy/mm") Then
  6.         temp = 0
  7.         For j = 2 To 7
  8.             temp = temp + Cells(i, j)
  9.         Next
  10.         [k2] = temp / 6
  11.     End If
  12. Next
  13. End Sub
複製代碼
PKKO

TOP

收到,消化中,不過真的沒想到這樣可以處理喔,真的十分謝謝

TOP

請問樓上兩位大大
我TRY的結果
日期好像比對不出來耶
是不是我哪邊有狀況沒處理呢

TOP

我的意思是
日期 = Format(Cells(i, "A"), "yyyy/mm")
測試結果好像比對不出來

TOP

Format(Cells(i, "A"), "yyyy/mm")
運算出來是2014/03
日期是2014/3
所以比對不出來

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

        靜思自在 : 【是否發揮了良能?】人間壽命因為短暫,才更顯得珍貴。難得來一趟人間,應問是否為人間發揮了自己的良能,而不要一味求長壽。
返回列表 上一主題