Page 1 of 1

โค้ด macro ไม่ทำงานในกรณี unhide ชี้ต

Posted: Sat Nov 17, 2012 1:28 pm
by godman
อยากทราบว่า ทำไมโค้ดที่เขียนขึ้นเพื่อให้ copy ข้อมูลในเซลล์จาก sheet Query2 ไปยัง sheet Change Request ของผมจึงไม่สามรถทำงานได้ในกรณีที่ผม hide sheet query ครับ แต่พอผม unhide กลับทำงานได้ปกติดี เกิดจากการ unhide ใช่ไหมครับ และถ้าเราต้องการไม่ให้มันสนใจว่า จะ ซ่อนชี้ต หรือไม่เพื่อแก้ปัญหานี้ เพราะใจจริงต้องการซ่อนชี้ตไว้ ไม่ให้เห็น แต่ code ไม่ทำงานต้องแก้ไข โค้ดที่ตรงใหนครับ ขอบคุณครับ

Code: Select all

Sub ReturnData()
'
' ReturnData Macro
'

'
    Sheets("Query2").Select
    Range("C2").Select
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("C9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("D2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("C10").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("A2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("C11").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("E2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("C12").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("F2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("E9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("J2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("E10").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("S3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("E11").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("I2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("E12").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("T5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("F10").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("F8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("K2:o34").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("B15").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   Sheets("Query2").Select
    Range("p2").Select
    Selection.Copy
    Sheets("ChangeRequest").Select
    Range("C7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Call CopyNew
End Sub

Re: โค้ด macro ไม่ทำงานในกรณี unhide ชี้ต

Posted: Sat Nov 17, 2012 3:00 pm
by joo
:D ลองแนบไฟล์ตัวอย่างมาดูด้วยครับเพื่อนสมาชิกจะได้ช่วยกันทดสอบ

Re: โค้ด macro ไม่ทำงานในกรณี unhide ชี้ต

Posted: Sat Nov 17, 2012 3:27 pm
by godman
ผมลองกดปุ่ม return และลอง ซ่อนชี้ตใดชี้ตหนึ่ง ปรากฏว่ามันขึ้น debug ทำอย่างไรให้สามารถซ่อนชี้ตไว้และโค้ดยังทำงาน

Re: โค้ด macro ไม่ทำงานในกรณี unhide ชี้ต

Posted: Sat Nov 17, 2012 4:09 pm
by snasui
:D ลองปรับ Code เป็นตามด้านล่างและลองเปรียบเทียบกับ Code เดิมดูครับ จะเห็นว่า ชีทที่ซ่อนไว้เราจะไม่ Select ก่อนวางข้อมูล

ปกติการปรับ Code ที่ได้จากการเขียน Macro เราควรลดการใช้ Select ให้มากที่สุด เนื่องจากทำให้ Code ทำงานช้าครับ

Code: Select all

Sub ReturnData()
'
' ReturnData Macro
'

'
    Sheets("Query2").Select
    Range("C2").Select
    Selection.Copy
    Sheets("ChangeRequest").Range("C9").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("D2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Range("C10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("A2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Range("C11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("E2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Range("C12").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("F2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Range("E9").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("J2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Range("E10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("S3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Range("E11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("I2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Range("E12").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("T5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Range("F10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Range("F8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Query2").Select
    Range("K2:o34").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ChangeRequest").Range("B15").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   Sheets("Query2").Select
    Range("p2").Select
    Selection.Copy
    Sheets("ChangeRequest").Range("C7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
  Application.CutCopyMode = False
End Sub

Re: โค้ด macro ไม่ทำงานในกรณี unhide ชี้ต

Posted: Sun Nov 18, 2012 4:58 pm
by godman
ขอบคุณสำหรับความรู้ใหม่ ครับ