Page 1 of 1
การเรียงลำดับด้วย VBA
Posted: Tue Nov 24, 2020 7:29 pm
by วังวู ช่ง
รบกวนท่านที่รู้ครับ ผมอยากเรียงลำดับด้วย VBA ด้วย code ล่างนี้ครับ
Code: Select all
Sub Macro1()
Dim i As Integer
Dim cell As Range, rng As Range
Set rng = Range("A1:A10")
i = 1
For Each cell In rng
cell.Value = i
i = i + 1
Next cell
End Sub
แต่ต้องการคือว่า เมื่อเราคีย์ใน column B ใน Column A ให้ออกลำดับแบบ Auto ครับ โดยไม่ต้องใช้ =SUBTOTAL( ครับ Code บนนี้จะปรับอย่างไรครับ?
Re: การเรียงลำดับด้วย VBA
Posted: Tue Nov 24, 2020 8:04 pm
by puriwutpokin
ตัวอย่างโค้ดครับ
Code: Select all
'Other code...
Set rng = Range("b1:b" & Cells(Rows.Count, 2).End(xlUp).Row)
i = 1
For Each cell In rng
cell.Offset(, -1).Value = i
'Other code...
Re: การเรียงลำดับด้วย VBA
Posted: Thu Nov 26, 2020 6:14 pm
by วังวู ช่ง
puriwutpokin wrote: Tue Nov 24, 2020 8:04 pm
ตัวอย่างโค้ดครับ
Code: Select all
'Other code...
Set rng = Range("b1:b" & Cells(Rows.Count, 2).End(xlUp).Row)
i = 1
For Each cell In rng
cell.Offset(, -1).Value = i
'Other code...
Code: Select all
Sub Macro1()
Dim i As Integer
Dim cell As Range, rng As Range
Set rng = Range("b1:b" & Cells(Rows.Count, 2).End(xlUp).Row)
i = 1
For Each cell In rng
cell.Offset(, -1).Value = i
i = i + 1
Next cell
End Sub
ยังติดปัญหาที่ว่า เมื่อ Column B ไม่มีข้อความให้ออกว่างเหมือนกันครับ ความต้องการเหมือนในไฟล์นี้ครับ
Re: การเรียงลำดับด้วย VBA
Posted: Thu Nov 26, 2020 7:27 pm
by puriwutpokin
ปรับเป็น
Code: Select all
Sub Macro1()
Dim i As Integer
Dim cell As Range, rng As Range
Set rng = Range("b1:b" & Cells(Rows.Count, 2).End(xlUp).Row)
i = 1
For Each cell In rng
If cell <> "" Then
cell.Offset(, -1).Value = Application.CountA(Range("b1:b" & i))
Else
cell.Offset(, -1).Value = ""
End If
i = i + 1
Next cell
End Sub
Re: การเรียงลำดับด้วย VBA
Posted: Thu Nov 26, 2020 8:31 pm
by วังวู ช่ง