ขอนุญาตครับ ผมขออนุญาตขอความช่วยเหลือ 2 ข้อครับ
1.หลังจากผมนำไฟล์เข้า workbook ได้แล้ว แต่หลังจากนั้นใช้คำสั่งเพื่อประมวลผลของข้อมูลจากไฟล์ชีดที่นำเข้าทั้งหมด พบว่าหากนำเข้าไฟล์ทุกไฟล์แล้วใช้ประมวลผลจะแสดงข้อมูลได้ถูกต้อง แต่หากนำไฟล์เข้าเพิ่มจะแสดงรายชื่องวดซ้ำซ้อนครับ
คำสั่งประมวลผลข้อมูล
Code: Select all
Sub addname()
Dim sh As Worksheet
Dim itme As Long
Dim otme As Long
Application.DisplayAlerts = False
For Each sh In Worksheets
If sh.Index > 1 Then
With Sheets("Main")
With sh
itme = Application.Match("InTime", .Range("a1:a10000"), 0)
otme = Application.Match("OutTime", .Range("a1:a10000"), 0)
End With
With .Range("b30").End(xlUp).Offset(1, 0)
.Value = sh.Name
.Offset(0, 1).Value = Application.Sum(sh.Range("aq" & itme & ":aq" & otme))
.Offset(0, 3).Value = Application.Sum(sh.Range("aq" & otme & ":aq" & 10000))
.Offset(0, 2).Value = Application.Count(sh.Range("aq" & itme & ":aq" & otme))
.Offset(0, 4).Value = Application.Count(sh.Range("aq" & otme & ":aq" & 10000))
End With
End With
End If
Next sh
Application.DisplayAlerts = True
Worksheets("Main").Activate
End Sub
2.ผมลองเขียน code เพื่อทำใส่สีเฉพาะแถวที่ cell ใน คอลัมม์ AQ ที่มีค่าเท่ากับ 0 หรือน้อยกว่า 0 ทั้ง 2 ช่วงข้อมูลคือ InTime กับ OutTime แต่ด้วยความรู้ยังน้อยเกี่ยวกับ VBA จึงทำงานไม่ได้ ขอความอนุเคราะห์ชี้แนะด้วยครับ ขอบพระคุณครับ
Code: Select all
Sub hlrow()
Dim sh As Worksheet
Dim itme As Long
Dim otme As Long
'Application.DisplayAlerts = False
For Each sh In Worksheets
If sh.Index > 1 Then 'มากกว่า 1 ชีท
With Sheets("Main")
With sh
itme = Application.Match("InTime", .Range("a1:a10000"), 0)
otme = Application.Match("OutTime", .Range("a1:a1000"), 0)
If itme.Range("AQ10:AQ").Value = 0 Then Interior.Color = vbYellow
End With
End With
End If
Next sh
'Application.DisplayAlerts = True
Worksheets("Main").Activate
End Sub
You do not have the required permissions to view the files attached to this post.