EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code: Select all
Sub btnSave_Click()
Sheets("Database").Select
Range("A1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("H4").Value
Sheets("Database").Select
Range("B1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("H5").Value
Sheets("Database").Select
Range("C1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("S5").Value
Sheets("Database").Select
Range("D1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("E8").Value
Sheets("Database").Select
Range("E1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("Q8").Value
Sheets("Database").Select
Range("F1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("V8").Value
Sheets("Database").Select
Range("G1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("AA8").Value
Sheets("Database").Select
Range("A1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("H4").Value
Sheets("Database").Select
Range("B1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("H5").Value
Sheets("Database").Select
Range("C1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("S5").Value
Sheets("Database").Select
Range("D1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("E10").Value
Sheets("Database").Select
Range("E1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("Q10").Value
Sheets("Database").Select
Range("F1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("V10").Value
Sheets("Database").Select
Range("G1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("AA10").Value
Sheets("Database").Select
Range("A1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("H4").Value
Sheets("Database").Select
Range("B1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("H5").Value
Sheets("Database").Select
Range("C1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("S5").Value
Sheets("Database").Select
Range("D1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("E12").Value
Sheets("Database").Select
Range("E1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("Q12").Value
Sheets("Database").Select
Range("F1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("V12").Value
Sheets("Database").Select
Range("G1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("AA12").Value
Sheets("Database").Select
Range("A1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("H4").Value
Sheets("Database").Select
Range("B1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("H5").Value
Sheets("Database").Select
Range("C1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("S5").Value
Sheets("Database").Select
Range("D1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("E14").Value
Sheets("Database").Select
Range("E1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("Q14").Value
Sheets("Database").Select
Range("F1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("V14").Value
Sheets("Database").Select
Range("G1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("AA14").Value
Sheets("Database").Select
Range("I1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("H4").Value
Sheets("Database").Select
Range("J1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("H5").Value
Sheets("Database").Select
Range("K1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("S5").Value
Sheets("Database").Select
Range("L1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("Q18").Value
Sheets("Database").Select
Range("M1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("Q20").Value
Sheets("Database").Select
Range("N1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("Q22").Value
Sheets("Database").Select
Range("O1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = Sheets("Form").Range("Q24").Value
End Sub
Code: Select all
Dim strRngs As String, r As Range, strSh As String
Dim l As Long, i As Integer, j As Integer, k As Long
strRngs = "H4,H5,S5,E#,Q#,V#,AA#"
With Worksheets("Form")
For i = 8 To 14 Step 2
j = 0
If .Cells(i, "e").Value = "NP00003" Then
strSh = "NP00003"
Else
strSh = "Database"
End If
With Worksheets(strSh)
k = .Range("a" & .Rows.Count).End(xlUp).Row + 1
End With
For Each r In .Range(VBA.Replace(strRngs, "#", i))
If .Cells(i, "e").Value = "" Then Exit Sub
Worksheets(strSh).Range("a" & k).Offset(0, j).Value = r.Value
j = j + 1
Next r
Next i
End With
Code: Select all
Sub btnSave_Click()
If Range("H5").Value = "" Then
MsgBox "Please enter the person code", vbCritical
End If
Dim strRngs As String, r As Range, strSh As String
Dim l As Long, i As Integer, j As Integer, k As Long
strRngs = "H4,H5,S5,E#,Q#,V#,AA#"
With Worksheets("Form")
For i = 8 To 14 Step 2
j = 0
If .Cells(i, "e").Value = "NP00003" Then
strSh = "Non-Project"
Else
strSh = "Project"
End If
With Worksheets(strSh)
k = .Range("a" & .Rows.Count).End(xlUp).Row + 1
End With
For Each r In .Range(VBA.Replace(strRngs, "#", i))
If .Cells(i, "e").Value = "" Then Exit Sub
Worksheets(strSh).Range("a" & k).Offset(0, j).Value = r.Value
j = j + 1
Next r
Next i
End With
Selection.ClearContents
Range("H5,E8,E10,E12,E14,Q8,Q10,Q12,Q14,V8,V10,V12,V14,AA8,AA10,AA12,AA14").Select
Selection.ClearContents
Range("ID").Select
End Sub
Code: Select all
'Other code
For Each r In .Range(VBA.Replace(strRngs, "#", i))
If .Cells(i, "e").Value = "" Then GoTo ClearContentsBeforEnd: 'Exit Sub
Worksheets(strSh).Range("a" & k).Offset(0, j).Value = r.Value
j = j + 1
Next r
Next i
End With
ClearContentsBeforEnd:
Selection.ClearContents
Range("H5,E8,E10,E12,E14,Q8,Q10,Q12,Q14,V8,V10,V12,V14,AA8,AA10,AA12,AA14").Select
Selection.ClearContents
Range("ID").Select
End Sub
Code: Select all
Sub btnSave_Click()
If Range("H5").Value = "" Then
MsgBox "Please enter the person code", vbCritical
Exit Sub
End If
Dim strRngs As String, r As Range, strSh As String
Dim l As Long, i As Integer, j As Integer, k As Long
strRngs = "H4,H5,S5,E#,Q#,V#,AA#"
With Worksheets("Form")
For i = 8 To 14 Step 2
j = 0
If .Cells(i, "e").Value = "NP00003" Then
strSh = "Non-Project"
Else
strSh = "Project"
End If
With Worksheets(strSh)
k = .Range("a" & .Rows.Count).End(xlUp).Row + 1
End With
For Each r In .Range(VBA.Replace(strRngs, "#", i))
If .Cells(i, "e").Value = "" Then GoTo ClearContentsBeforEnd: 'Exit Sub
Worksheets(strSh).Range("a" & k).Offset(0, j).Value = r.Value
j = j + 1
Next r
Next i
End With
ClearContentsBeforEnd:
Selection.ClearContents
Range("H5,E8,E10,E12,E14,Q8,Q10,Q12,Q14,V8,V10,V12,V14,AA8,AA10,AA12,AA14").Select
Selection.ClearContents
Range("ID").Select
End Sub