Page 1 of 1
VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Mon Nov 21, 2016 2:38 pm
by suka
เรียนอาจารย์และท่านผู้รู้ค่ะ
ต้องการเปิดไฟล์ด้วยการกรอกชื่อไฟล์ที่เซลล์ B5 แทนการใช้กดปุ่มเปิด Code เปิดตามแนบไฟล์ควรปรับอย่างไรคะ
Code: Select all
Sub Open2559()
Set wb = Workbooks.Open("C:\Documents and Settings\Administrator\Desktop\Test\2559.xlsx", False, False)
End Sub
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Mon Nov 21, 2016 2:59 pm
by niwat2811
ลองปรับ Code เป็นแบบนี้ดูครับว่าใช้ได้ตามต้องการไหม
Code: Select all
Sub Open2559()
Workbooks.Open Range("B5").Value & ".xlsx"
End Sub
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Mon Nov 21, 2016 3:05 pm
by niwat2811
ถ้าไม่ใช้ปุ่มกดลองปรับ Code เป็นแบบนี้ดูครับ (นำไปวางที่ชีท Menu)
Code: Select all
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Workbooks.Open Range("B5").Value & ".xlsx"
End Sub
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Mon Nov 21, 2016 3:17 pm
by suka
ยังไม่ได้ค่ะคุณ niwat2811 Code ฟ้องตามรูปแนบค่ะ
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Mon Nov 21, 2016 3:21 pm
by niwat2811
ผมลองที่เครื่องของผมก็ไม่พบปัญหาใด ๆ นะครับ คงต้องรอให้ท่านอื่นมาช่วยตอบแล้ว
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Mon Nov 21, 2016 3:44 pm
by DhitiBank
หลัง Workbook.Open
อาจต้องเพิ่ม "C:\Documents and Settings\Administrator\Desktop\Test\" & Range("b5").value & ".xlsx"
ครับ
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Mon Nov 21, 2016 5:15 pm
by suka
ขอบคุณมากค่ะคุณ niwat2811
DhitiBank wrote:หลัง Workbook.Open อาจต้องเพิ่ม "C:\Documents and Settings\Administrator\Desktop\Test\" & Range("b5").value & ".xlsx" ครับ
ขอบคุณมากค่ะคุณ DhitiBank ได้ตรงตามต้องการค่ะ
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Wed Nov 23, 2016 9:54 am
by suka
niwat2811 wrote:ลองปรับ Code เป็นแบบนี้ดูครับว่าใช้ได้ตามต้องการไหม
โค้ด: เลือกทั้งหมด
Sub Open2559()
Workbooks.Open Range("B5").Value & ".xlsx"
End Sub
Code คุณ niwat2811 ให้มา สามารถนำมาปรับตามตัวอย่างด้านล่างใช้ได้แล้วค่ะ ก่อนหน้านี้ไม่ได้เป็นเพราะไม่เข้าใจการใช้ค่ะ ขอบคุณมากค่ะ
Code: Select all
Sub Open2559()
Workbooks.Open Range("B3").Value & Range("B5").Value & ".xlsx"
End Sub
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Fri Jan 06, 2017 8:05 pm
by suka
ขอความช่วยเหลือค่ะ ต้องการปรับ
formBook.Sheets("c9").Activate
โค้ดนีให้เปลี่ยนตามค่าในเซลล์ C9 ไฟล์ Form ชีท Form เพื่อใช้แทน Code
formBook.Sheets("Database").Activate
นี้ค่ะ
ความต้องการ
ถ้าเซลล์ C9 เป็น "Database" ให้โค้ดเปิดไฟล์ OP_Share แล้ว Copy ข้อมูลชีท Sheet1 มาวางที่ชืท Database ไฟล์ Form แต่ถ้าเป็น "AR_Share" ให้โค้ดเปิดไฟล์ AR_Share และ Copy ข้อมูลชีท Sheet1 มาวางที่ชืท Ar_sh ไฟล์ Form ค่ะ
เพื่อใช้กับ Code ทั้งชุดด้านล่างนี้ค่ะ ควรปรับอย่างไรเพื่อเปิดไฟล์ตามค่าในเซลล์ B9 ไฟล์ Form ได้คะ
Code: Select all
Sub OpenCopy()
Dim wbOpen As Boolean
Dim wb As Workbook
Dim formBook As Workbook
Set formBook = ThisWorkbook
For Each wb In Workbooks
If wb.Name = Range("b9").Value Then
wbOpen = True
End If
Next wb
If Not wbOpen Then
Set wb = Workbooks.Open("C:\Documents and Settings\Administrator\Desktop\ตัวอย่าง\" & Range("b9").Value & ".xlsx", False, False)
End If
ActiveSheet.UsedRange.Copy
'formBook.Sheets("Database").Activate
formBook.Sheets("c9").Activate
Range("A1").Select
ActiveSheet.Paste
Sheets("Form").Select
Application.CutCopyMode = False
Application.Goto reference:="OFFSET(R1C1,COUNTA(C1),0)"
ActiveWorkbook.Save
wb.Close False
End Sub
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Sat Jan 07, 2017 7:05 am
by snasui
suka wrote:ขอความช่วยเหลือค่ะ ต้องการปรับ formBook.Sheets("c9").Activate
โค้ดนีให้เปลี่ยนตามค่าในเซลล์ C9 ไฟล์ Form ชีท Form เพื่อใช้แทน Code formBook.Sheets("Database").Activate
นี้ค่ะ

ตัวอย่างการปรับ Code ครับ
formBook.Sheets(Range("c9").Value).Activate
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Sat Jan 07, 2017 8:52 am
by suka
อาจารย์คะ Code ฟ้องตามรูปแนบค่ะ
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Sat Jan 07, 2017 8:59 am
by snasui

ตอนที่เกิด Error อยู่ที่กำลังอยู่ที่ Sheet ไหนและนี้ C9 คือค่าใดครับ
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Sat Jan 07, 2017 9:39 am
by suka
ตอนที่เกิด Error อยู่ที่กำลังอยู่ที่ชีท Form ค่ะอาจารย์
ความต้องการ
ถ้าเซลล์ C9 เป็น "Database" ให้โค้ดเปิดไฟล์ OP_Share แล้ว Copy ข้อมูลชีท Sheet1 มาวางที่ชืท Database ไฟล์ Form แต่ถ้าเป็น "AR_Share" ให้โค้ดเปิดไฟล์ AR_Share และ Copy ข้อมูลชีท Sheet1 มาวางที่ชืท Ar_sh ไฟล์ Form ค่ะ ไม่ทราบว่าสามารถทำแบบนี้ได้ไหมค่ะ
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Sat Jan 07, 2017 9:58 am
by snasui

ลองปรับ Code เป็นตามด้านล่างครับ
Code: Select all
'Other code...
ActiveSheet.UsedRange.Copy
formBook.Sheets("Form").Activate
formBook.Sheets(Range("c9").Value).Activate
Range("A1").Select
ActiveSheet.Paste
'Other code..
Re: VBA เปิดไฟล์โดยใส่ชื่อไฟล์ที่เซลล์ B5 แทนการใช้ปุ่ม
Posted: Sat Jan 07, 2017 10:12 am
by suka
ได้ตรงตามที่ต้องการเลยค่ะ ขอบคุณมากค่ะอาจารย์
