Page 1 of 1
ขอความช่วยเหลือครับ Excel macro error 13 : type mismatch
Posted: Mon May 26, 2014 9:23 am
by paisanug
ผมตอ้งการเขียน excel macro เพื่อสั่งพิมพ์ โดยจำนวน copy ที่พิมพ์นั้นอ่านมาจาก cell , แต่เมื่อ run macro แล้วขึ้น error , run time error '13':type mismatch, ขอความช่วยเหลือด้วยดรับ ตามไฟล์แนบครับ
Dim PFD_02 As Integer
Dim PFD_03 As Integer
PFD_02 = CInt(Sheets("Param").Cells(10, 9).Value)
PFD_03 = Cint(Sheets("Param").Cells(10, 9).Value)
Sheets("FT_HCM_05_PG_1_of_3").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=PFD_03
Sheets("FT_HCM_05_PG_2_of_3").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=PFD_02
Re: ขอความช่วยเหลือครับ Excel macro error 13 : type mismatch
Posted: Mon May 26, 2014 11:35 am
by snasui

ที่มีปัญหาเพราะว่าไป
อ้างผิดเซลล์ครับ
ตัวอย่าง
Sheets("Param").Cells(10, 9).Value ให้ผลลัพธ์เป็น
FT_PFD_02 ไม่สามารถใช้ Cint เข้าไปแปลงให้เป็นตัวเลขได้
ผมเข้าใจว่าคุณต้องการนำเซลล์ทีเป็นตัวเลขคือ
Sheets("Param").Cells(10, 10).Value คือชีท Param บรรทัดที่ 10 คอลัมน์ ที่ 10 หรือเซลล์
J10 ไปใช้ ซึ่งเป็นตัวเลขอยู่แล้ว ไม่จำเป็นต้องไปแปลงด้วย Cint แต่อย่างใด
Re: ขอความช่วยเหลือครับ Excel macro error 13 : type mismatch
Posted: Mon May 26, 2014 4:49 pm
by paisanug
ขอบคุณมากครับ แต่ผมก็ยังมีปัญหาว่าเมื่อสั่งพิมพ ปรากฏว่า excel พิมพ์ออกมาเพียง sheet ละ 1 ก็อปปี้ เช่น ค่าของ cel J11=2 ควรจะพิมพ์ 2 ก็อปปี้ หรือจาด cell J12 = 8 ควรจะพิมพ์ 8 ก็อปปี้ แต่ปรากฎว่า excel พิมพ์ออกมาเพียง sheet ละ 1 ก็อปปี้เท่านั้น รบกวนอีกครั้งนะครับ
PFD_02 = Sheets("Param").Range("J11").Value
Sheets("FT_QAP_03").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=PFD_02
PFD_02 = Sheets("Param").Range("J12").Value
Sheets("FT_QAP_04").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=PFD_02
Re: ขอความช่วยเหลือครับ Excel macro error 13 : type mismatch
Posted: Mon May 26, 2014 7:49 pm
by snasui

หากไม่ Print ตาม Copy ทีกำหนดลอง Loop ดูตามตัวอย่างด้านล่างครับ
Code: Select all
PFD_02 = Sheets("Param").Range("J11").Value
For i = 1 To PFD_02
Sheets("FT_QAP_03").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=i
Next i