snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
Sub FillData()
Dim rAll As Range
Dim r As Range
With Worksheets("Data input")
Set rAll = .Range("E2", .Range("E2").End(xlDown))
End With
For Each r In rAll
If CInt(Mid(r, 3, 3)) = Worksheets("Pivot Summary").Range("B1") And _
r.Offset(, -2) = Worksheets("Pivot Summary").Range("B2") Then
r.Offset(, 8) = True
Else
r.Offset(, 8) = False
End If
If Application.CountIf(Worksheets("Data input").Range("M:M"), True) = 0 Then
MsgBox "Can not found data."
Exit Sub
Else
Worksheets("Pivot Summary").PivotTables(1).PivotCache.Refresh
End If
Next r
MsgBox "Finish."
End Sub
You do not have the required permissions to view the files attached to this post.
Sub FillData()
Dim rAll As Range
Dim r As Range
With Worksheets("Data input")
Set rAll = .Range("E2", .Range("E2").End(xlDown))
End With
For Each r In rAll
If CInt(Mid(r, 3, 3)) = Worksheets("Pivot Summary").Range("B1") And _
DateValue(r.Offset(, -2)) = DateValue(Worksheets("Pivot Summary").Range("B2")) Then
r.Offset(, 8) = True
Else
r.Offset(, 8) = False
End If
If Application.CountIf(Worksheets("Data input").Range("M:M"), True) = 0 Then
MsgBox "Can not found data."
Exit Sub
Else
Worksheets("Pivot Summary").PivotTables(1).PivotCache.Refresh
End If
Next r
MsgBox "Finish."
End Sub
Sub FillData()
Dim rAll As Range
Dim r As Range
With Worksheets("Data input")
Set rAll = .Range("E2", .Range("E2").End(xlDown))
End With
For Each r In rAll
If CInt(Mid(r, 3, 3)) = Worksheets("Pivot Summary").Range("B1") And _
DateValue(r.Offset(, -2)) = DateValue(Worksheets("Pivot Summary").Range("B2")) Then
r.Offset(, 8) = True
Else
r.Offset(, 8) = False
End If
If Application.CountIf(Worksheets("Data input").Range("M:M"), True) = 0 Then
MsgBox "Can not found data."
Exit Sub
Else
Worksheets("Pivot Summary").PivotTables(1).PivotCache.Refresh
End If
Next r
MsgBox "Finish."
End Sub
Sub FillData()
Dim rAll As Range
Dim r As Range
With Worksheets("Data input")
Set rAll = .Range("E2", .Range("E2").End(xlDown))
End With
For Each r In rAll
If CInt(Mid(r, 3, 3)) = Worksheets("Pivot Summary").Range("B1") And _
(CDbl(r.Offset(, -2)) >= CDbl(Worksheets("Pivot Summary").Range("B2")) _
And CDbl(r.Offset(, -2)) <= CDbl(Date + Time)) Then
r.Offset(, 8) = True
Else
r.Offset(, 8) = False
End If
Next r
If Application.CountIf(Worksheets("Data input").Range("M:M"), True) = 0 Then
MsgBox "Can not found data."
Exit Sub
Else
Worksheets("Pivot Summary").PivotTables(1).PivotCache.Refresh
End If
MsgBox "Finish."
End Sub
Sub FillData()
Dim rAll As Range
Dim r As Range
On Error Resume Next
With Worksheets("Data input")
Set rAll = .Range("E2", .Range("E2").End(xlDown))
End With
For Each r In rAll
If CInt(Mid(r, 3, 3)) = Worksheets("Pivot Summary").Range("B1") And _
(CDbl(r.Offset(, -2)) >= CDbl(Worksheets("Pivot Summary").Range("B2")) _
And CDbl(r.Offset(, -2)) <= CDbl(Date + Time)) Then
r.Offset(, 8) = True
Else
r.Offset(, 8) = False
End If
Next r
If Application.CountIf(Worksheets("Data input").Range("M:M"), True) = 0 Then
MsgBox "Can not found data."
Exit Sub
Else
Worksheets("Pivot Summary").PivotTables(1).PivotCache.Refresh
End If
MsgBox "Finish."
End Sub
Sub FillData()
Dim rAll As Range
Dim r As Range
On Error Resume Next
With Worksheets("Data input")
Set rAll = .Range("E2", .Range("E2").End(xlDown))
End With
For Each r In rAll
If CInt(Mid(r, 3, 3)) = Worksheets("Pivot Summary").Range("B1") And _
CDbl(r.Offset(, -2)) <= CDbl(Worksheets("Pivot Summary").Range("B2")) Then
r.Offset(, 8) = True
Else
r.Offset(, 8) = False
End If
Next r
If Application.CountIf(Worksheets("Data input").Range("M:M"), True) = 0 Then
MsgBox "Can not found data."
Exit Sub
Else
Worksheets("Pivot Summary").PivotTables(1).PivotCache.Refresh
End If
MsgBox "Finish."
End Sub
อ้างอิงจาก code ที่เกี่ยวข้องข้างบนครับ
Sub FillData()
Dim rAll As Range
Dim r As Range
On Error Resume Next
With Worksheets("Data input")
Set rAll = .Range("E2", .Range("E2").End(xlDown))
End With
For Each r In rAll
If CInt(Mid(r, 3, 3)) = Worksheets("Pivot Summary").Range("B1") And _
CDbl(r.Offset(, -2)) <= CDbl(Worksheets("Pivot Summary").Range("B2")) Then
r.Offset(, 8) = True
Else
r.Offset(, 8) = False
End If
Next r
If Application.CountIf(Worksheets("Data input").Range("M:M"), True) = 0 Then
MsgBox "Can not found data."
Exit Sub
Else
Worksheets("Pivot Summary").PivotTables(1).PivotCache.Refresh
End If
MsgBox "Finish."
End Sub
อาจารย์ครับจากตรงนี้ ถ้าผมเปลี่ยนเป็น -1 หมายความว่าให้เอาข้อมูลประวัติก่อนหน้าจนถึงวันที่เวลาตามที่เลือกในช่อง B2 ใช่ไหมครับ เพราะผมลองเปลี่ยนแล้วมันโอเค นำไปใช้ได้ไใช่ไหมครับ และนำไปประยุกต์ใช้ในเรื่องอื่นๆได้ด้วยใช่ไหมครับ ผมตื่นเต้นมากที่มันทำได้
CDbl(r.Offset(, -2)) <= CDbl(Worksheets("Pivot Summary").Range("B2")) Then