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
Public Sub HideBlankRows1()
Dim i As Long
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
Range("K1:L15").Select
For i = Selection.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
Selection.Rows(i).EntireRow.Hidden = True
End If
Next i
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
Code: Select all
Sub test0()
Dim r As Range
For Each r In Range("k1:k15")
If r = "" Then
r.EntireRow.Hidden = True
End If
Next r
End Sub
snasui wrote: ลองดูตัวอย่าง Code ตามด้านล่างครับCode: Select all
Sub test0() Dim r As Range For Each r In Range("k1:k15") If r = "" Then r.EntireRow.Hidden = True End If Next r End Sub
เนื่องจากมันไม่มีค่าว่าง ค่าตามตัวอย่างเป็น 0 แล้วใช้การซ่อนค่า 0 จะนำไปเทียบกับค่าว่างเช่นที่ผมเขียนมาไม่ได้ ต้องประยุกต์ให้เป็นไปตามค่าที่แท้จริงkitokids wrote:เกิดการเข้าใจผิดนิดหน่อยครับ สูตรที่ให้คุณ snasui ให้มาตอนแรกนั้นมันใช้ไม่ได้อ่ะครับ รันแล้วไม่เกิดอะไรขึ้น
Code: Select all
Public Sub FixCode()
Dim r As Range
For Each r In Range("A1:A10")
If Application.Sum(r.Resize(, 2)) = 0 Then
r.EntireRow.Hidden = True
End If
Next r
End Sub
รบกวนถามอีกนิดนึงครับCode: Select all
Public Sub FixCode() Dim r As Range For Each r In Range("A1:A10") If Application.Sum(r.Resize(, 2)) = 0 Then r.EntireRow.Hidden = True End If Next r End Sub
Code: Select all
Public Sub FixCode()
Dim r As Range
Dim a As String
Set r = .Range("A1:A10")
For Each a In r
If Application.Sum(a.Resize(, 3)) = 0 Then
a.EntireRow.Hidden = True
End If
Next a
End Sub
Code: Select all
Public Sub FixCode()
Dim r As Range
For Each r In Range("A1:A10")
If Application.Countif(r.Resize(, 3),0) = 3 Then
r.EntireRow.Hidden = True
End If
Next r
End Sub
Code: Select all
If Application.Countif(r.Resize(, 3),0) = 3 Then
r.Resize(, 3)
หมายถึงให้ขยาย r ไปด้านขวา 3 เซลล์ ยกตัวอย่างเช่น หาก r คือ A1 ก็จะกลายเป็น A1:C1 ส่วน Countif เป็นฟังก์ชั่นของ Excel จำเป็นต้องศึกษาเข้าใจ เนื่องจากเป็นฟังก์ชั่นพื้นฐานที่ใช้บ่อย สามารถศึกษาได้ที่นี่ครับ http://office.microsoft.com/th-th/excel ... aspx?CTT=1Code: Select all
Public Sub HideBlankRow()
Dim r As Range
For Each r In Range("A5:A199")
If Application.CountIf(r.Resize(, 4), "") _
+ Application.CountIf(r.Resize(, 4), 0) = 4 Then
r.EntireRow.Hidden = True
End If
Next r
End Sub