หลักการทำงานของโปรแกรมของผมคือ
รับค่ามาจาก cell "C1" sheet "SHAPE"
กดคลิกที่ button จะทำการ copy รูปภาพ จาก SHEET "SHAPE" ไปยัง SHEET"pic1 และ SHEET "pic2" ตาม cell ที่กำหนดไว้
ค่าที่รับมาจาก cell "C1" sheet "SHAPE" จะเป็นการระบุจำนวนรูปภาพที่ copy
โค๊ดชุดนี้นทำงานได้ปกติ
แต่บางครั้งผมมีการรับค่ามา จำนวน 100 ซึ่งโค๊ดจะยาวมาก จะไม่สามารถรันได้ เกินขอบเขตของ vba
คำถามคือ ชุดโค๊ดนี้สามารถใส่ไว้ในตัวแปรได้หรือไม่ครับ หรือทำเป็นฟังชั่นได้มั้ย
โค๊ดนี้คือ copy รูปภาพ 1 รูป
Code: Select all
'1
Sheets("SHAPE").Select
Range("B2").Select
Selection.Copy
Sheets("pic1").Select
Range("B2").Select
ActiveSheet.Pictures.Paste.Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 36.5
Selection.ShapeRange.Width = 101
Sheets("pic2").Select
Range("B2").Select
ActiveSheet.Pictures.Paste.Select
ส่วนอันนี้คือโค๊ด copy รูป 3 รูป ซึ่งเวลารับค่าตัวเลขจำนวนมาก โค๊ดจะซ้ำๆกัน ทำให้เปลืองเนื้อที่
Code: Select all
Sub Button1()
Select Case Range("C3")
Case "1"
On Error Resume Next
'1
Sheets("SHAPE").Select
Range("B2").Select
Selection.Copy
Sheets("pic1").Select
Range("B2").Select
ActiveSheet.Pictures.Paste.Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 36.5
Selection.ShapeRange.Width = 101
Sheets("pic2").Select
Range("B2").Select
ActiveSheet.Pictures.Paste.Select
Case "2"
On Error Resume Next
'1
Sheets("SHAPE").Select
Range("B2").Select
Selection.Copy
Sheets("pic1").Select
Range("B2").Select
ActiveSheet.Pictures.Paste.Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 36.5
Selection.ShapeRange.Width = 101
Sheets("pic2").Select
Range("B2").Select
ActiveSheet.Pictures.Paste.Select
'2
Sheets("SHAPE").Select
Range("B3").Select
Selection.Copy
Sheets("pic1").Select
Range("B3").Select
ActiveSheet.Pictures.Paste.Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 36.5
Selection.ShapeRange.Width = 101
Sheets("pic2").Select
Range("B3").Select
ActiveSheet.Pictures.Paste.Select
Case "3"
On Error Resume Next
'1
Sheets("SHAPE").Select
Range("B2").Select
Selection.Copy
Sheets("pic1").Select
Range("B2").Select
ActiveSheet.Pictures.Paste.Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 36.5
Selection.ShapeRange.Width = 101
Sheets("pic2").Select
Range("B2").Select
ActiveSheet.Pictures.Paste.Select
'2
Sheets("SHAPE").Select
Range("B3").Select
Selection.Copy
Sheets("pic1").Select
Range("B3").Select
ActiveSheet.Pictures.Paste.Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 36.5
Selection.ShapeRange.Width = 101
Sheets("pic2").Select
Range("B3").Select
ActiveSheet.Pictures.Paste.Select
'3
Sheets("SHAPE").Select
Range("B4").Select
Selection.Copy
Sheets("pic1").Select
Range("B4").Select
ActiveSheet.Pictures.Paste.Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 36.5
Selection.ShapeRange.Width = 101
Sheets("pic2").Select
Range("B4").Select
ActiveSheet.Pictures.Paste.Select
End Select
End Sub
You do not have the required permissions to view the files attached to this post.