Page 1 of 1

ใช้ if แต่พอค่ามัน false มันก็ยัง run แก้ยังไงครับ รบกวนด้วย

Posted: Thu Jul 20, 2017 4:15 pm
by NupaK
คือผมต้องการเพิ่มช่อง 20 ช่องถัดจากข้อมูลที่มีอยู่ ในคอลัม B:H แต่มีเงื่อนไขว่า ให้นับค่าที่ คอลัม A ถ้าน้อยกว่า 20 ถึงค่อยทำ แต่ผมกดรันมันก็รันตลอดเลย ทั้งๆที่ถ้านับ มันก็เกิน 20 ตั้งแต่ครั้งแรกแล้ว เพิ่งเริ่มหัดเขียน รบกวนด้วยครับ

Sub Customers()
'
' Macro2 Macro

Dim i As Integer

i = Excel.WorksheetFunction.CountA(Range("B2").End(xlDown).Offset(1, -1), Range("B65536").End(xlUp).Offset(0, -1))

If (i < 20) Then

ActiveSheet.Range("B2").End(xlDown).Offset(1, 0).Select
Selection.Resize(Selection.Rows.Count + 19, Selection.Columns.Count + 6).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=FormatFromLeftOrAbove
Range("B510:H511").Copy
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

Else: MsgBox "Cannot Insert Rows Anymore"
End If

ActiveSheet.Range("B2").End(xlDown).Offset(1, 0).Select

End Sub

Re: ใช้ if แต่พอค่ามัน false มันก็ยัง run แก้ยังไงครับ รบกวนด้วย

Posted: Thu Jul 20, 2017 7:50 pm
by snasui
:D แนบไฟล์ตัวอย่างมาด้วยครับ กรณีการโพสต์ Code อ่านกฎข้อ 5 ด้านบนประกอบ :roll: จะมี Link แนะนำวิธีการโพสต์ให้แสดงเป็น Code จะได้สะดวกในการคัดลอกไปใช้งานครับ

Re: ใช้ if แต่พอค่ามัน false มันก็ยัง run แก้ยังไงครับ รบกวนด้วย

Posted: Thu Jul 20, 2017 11:04 pm
by NupaK

Code: Select all

Sub Customers()
'
' Macro2 Macro

Dim i As Integer

i = Excel.WorksheetFunction.CountA(Range("Customers!B2").End(xlDown).Offset(1, -1), Range("Customers!B65536").End(xlUp).Offset(0, -1))

If (i < 20) Then

     ActiveSheet.Range("Customers!B2").End(xlDown).Offset(1, 0).Select
     Selection.Resize(Selection.Rows.Count + 19, Selection.Columns.Count + 6).Select
     Selection.Insert Shift:=xlDown, CopyOrigin:=FormatFromLeftOrAbove
     Range("Customers!B3:H4").Copy
     Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
     Application.CutCopyMode = False

     Else: MsgBox "Cannot Insert Rows Anymore"
End If
คือผมต้องการเพิ่มช่อง 20 ช่องถัดจากข้อมูลที่มีอยู่ ในคอลัมน์ B:H แต่มีเงื่อนไขว่า ให้นับค่าที่ คอลัม A ถ้าน้อยกว่า 20 ถึงค่อยทำ (ซึ่งตัวเลขในคอลัมน์ A ใส่ขึ้นมาเฉยๆ ไม่ได้เกี่ยวกับข้อมูลที่จะใช้เลย ช่วยแนะนำวิธีอื่นด้วยครับ) แต่ผมกดรันมันก็รันตลอดเลย ทั้งๆที่ถ้านับ มันก็เกิน 20 ตั้งแต่ครั้งแรกแล้ว เพิ่งเริ่มหัดเขียน รบกวนด้วยครับ

แก้ไขแล้ว ขอบคุณที่แนะนำครับ :)

Re: ใช้ if แต่พอค่ามัน false มันก็ยัง run แก้ยังไงครับ รบกวนด้วย

Posted: Fri Jul 21, 2017 6:35 pm
by snasui
:D ช่วยให้รายละเอียดเพิ่มเติมว่านับจากไหนถึงไหน มีขอบเขตในการนับหรือไม่ หรือว่านับทั้งคอลัมน์ หรือมีเงื่อนไขในการนับอย่างไร จะได้เข้าใจตรงกันครับ