Page 1 of 1

ดึงรูปมาใส่ ตามชื่อที่เป็นตัวเลข....

Posted: Tue Mar 05, 2013 10:53 am
by mr.zatan
รูปตัวอย่าง http://goo.gl/i16nS

1. รูปอยู่ที่ D:\photo
2. ดึงรูปมาใส่ตามชื่อที่เป็นตัวเลข (เพราะในชื่อจะมีตัวอักษรด้วย) รูปอันไหนก็ได้ที่ชื่อ ตัวเลขเหมือนกัน

Re: ดึงรูปมาใส่ ตามชื่อที่เป็นตัวเลข....

Posted: Tue Mar 05, 2013 11:09 am
by tupthai
จะทำเช่นนั้นได้ต้องใช้ VBA ครับ
ตามกฎข้อ.5 ด้านบน
สำหรับคำถามเกี่ยวกับ VBA ให้ลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน

Re: ดึงรูปมาใส่ ตามชื่อที่เป็นตัวเลข....

Posted: Tue Mar 05, 2013 11:37 am
by mr.zatan
ถ้างั้นก็จบเลยงั้นเพราะผมเองก็ไม่ใช่ โปรแกรมเมอร์...

Re: ดึงรูปมาใส่ ตามชื่อที่เป็นตัวเลข....

Posted: Tue Mar 05, 2013 11:48 am
by tupthai

Re: ดึงรูปมาใส่ ตามชื่อที่เป็นตัวเลข....

Posted: Wed Mar 06, 2013 12:59 am
by tupthai

Code: Select all

Public Sub insertphoto()
    Dim Path As String
    Dim F As String
    Path = "d:\photo\"
    F = Dir(Path & "*" & Mid(Range("b11").Value, 5) & "*.jpg")
If Len(F) > 0 Then
   With ActiveSheet.Pictures.Insert(Path & F)
       .Top = Range("a4:b10").Top
       .Height = Range("a4:b10").Height
       .Left = ((Range("a4:b10").Width) - (.Width)) / 2
     End With
Else
    MsgBox "file not found"
End If

 F = Dir(Path & "*" & Mid(Range("b23").Value, 5) & "*.jpg")
Range("a16").Select
If Len(F) > 0 Then
   With ActiveSheet.Pictures.Insert(Path & F)
       .Top = Range("a16:b22").Top
       .Height = Range("a16:b22").Height
       .Left = ((Range("a16:b22").Width) - (.Width)) / 2
     End With
Else
    MsgBox "file not found"
End If
End Sub

Re: ดึงรูปมาใส่ ตามชื่อที่เป็นตัวเลข....

Posted: Wed Mar 06, 2013 11:13 am
by mr.zatan
ขอบคุณมากครับ...

Re: ดึงรูปมาใส่ ตามชื่อที่เป็นตัวเลข....

Posted: Wed Mar 06, 2013 4:53 pm
by mr.zatan
รูปตัวอย่าง http://goo.gl/4hT14

ส่วนนี้ถ้าผมจะเพิ่มเงื่อนไข ให้ดึงรูปที่ตรงกับตัวอักษรตัวที่ 3 ด้วย ** ในตัวอย่างคือตัว P และ R

(เช็คตัวเลข+ตัวอักษรตัวที่ 3) เมื่อทุกอย่างตรงกันค่อยดึงรูปมาใส่

Code: Select all

 F = Dir(Path & "*" & Mid(Range("b11").Value, 5) & "*.jpg")

Re: ดึงรูปมาใส่ ตามชื่อที่เป็นตัวเลข....

Posted: Wed Mar 06, 2013 5:08 pm
by tupthai

Code: Select all

F = Dir(Path & "*" & Mid(Range("b11").Value, 5) & "*.jpg")
Mid(Range("b11").Value, 5) หมายถึงเอาไว้เฉพาะตัวอักษรตัวที่5เป็นต้นไป ส่วนตัวที่ 1-4 ตัดทิ้ง

ให้แก้ตรงเลข 5 เป็น 3

Code: Select all

F = Dir(Path & "*" & Mid(Range("b11").Value, 3) & "*.jpg")

Re: ดึงรูปมาใส่ ตามชื่อที่เป็นตัวเลข....

Posted: Wed Mar 06, 2013 5:55 pm
by mr.zatan
ขอบคุณครับ...