:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
hutthaya
Member
Member
Posts: 57
Joined: Thu Nov 14, 2013 2:56 pm

อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#1

Post by hutthaya »

maindata.xlsm
อยากให้ชื่อไฟล์ที่ browse ขึ้นมาแต่ละครั้งไปแสดงที่หน้า sheet:MPS COMPARE ที่ cells (3,5) หลังเคื่องหมาย = ค่ะ
จะแยกนำแค่ชื่อไฟล์ C1.2.3 ASIA_Q2'14.xls จาก C:\Users\MPS Comparing\MPS\C1.2.3 ASIA_Q2'14.xls
ช่วยแนะนำแนวทางหน่อยน่ะค่ะคิดไม่ออกแล้วจริงๆค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31190
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#2

Post by snasui »

:D Procedure ที่เขียนมาแล้วชื่ออะไร อยู่ Module ใด ติดขัดบรรทัดใดครับ
hutthaya
Member
Member
Posts: 57
Joined: Thu Nov 14, 2013 2:56 pm

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#3

Post by hutthaya »

คือตอนนี้สามารถเบราซ์นำชื่อไฟล์มาแสดงที่ช่องเซลได้แล้วค่ะนูอยากให้ไฟล์ c.123 ที่ sheet :data มาแสดงในไฟล์ aindata ที่ sheet :input data MPS ค่ะ จะมีวิธีไหนดึงข้อมูลมาไว้ข้ามไฟล์ได้หรือปล่าวค่ะอาจาร์ย
maindata.xlsm

ไฟล์ที่ใช้ในการ brows
c.123.xlsm

Code: Select all

Option Explicit

Public MPS_NAME As String
'brows1
Sub Browse1()   
Dim FName As Variant
FName = Application.GetOpenFilename(filefilter:="All Files (*.*),*.txt,All Files (*.*),*.*")
If FName <> "False" Then
Sheet7.Cells(25, 3) = FName
End If
End Sub

'brows 2
Sub Browse2()
Dim FName As Variant
FName = Application.GetOpenFilename(filefilter:="All Files (*.*),*.txt,All Files (*.*),*.*")
If FName <> "False" Then
Sheet7.Cells(29, 3) = FName
End If
End Sub
'address file
Function IsFileOpened(StrFilePath As String) As Integer
    Dim FileNum As Integer
     
     'First check filepath exists
    If Len(Dir(StrFilePath)) > 0 Then
        FileNum = FreeFile()
        On Error Resume Next
        Open StrFilePath For Input Lock Read As #FileNum  ' Open file and lock it.
        If Err.Number <> 0 Then
            IsFileOpened = 1 'File open
        Else
            IsFileOpened = 0 'File Closed
        End If
        Close FileNum
    Else
        IsFileOpened = 2 'File not found
    End If
     
End Function
'open file
Public Function OpenFile(filename As String)

    If IsFileOpened(filename) <> 1 Then
      'file is closed/doesn't exist - take appropriate action!
      Workbooks.Open (filename)
      
      'MsgBox ("error open file")
    Else
        On Error GoTo ErrorHandler
        
        Workbooks.Open (filename)
    End If
    
ErrorHandler:
    'MsgBox ("error open file")

End Function

Function isWorkbookExist(newWS As String)
    Dim ws As Worksheet
    isWorkbookExist = False
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name = newWS Then
            isWorkbookExist = True
            Exit For
        End If
    Next
    
End Function
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31190
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#4

Post by snasui »

:D อ่าน Link นี้แล้วเขียนแก้ไขข้อความให้ถูกต้องก่อนครับ viewtopic.php?f=3&t=6100#p39026
hutthaya
Member
Member
Posts: 57
Joined: Thu Nov 14, 2013 2:56 pm

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#5

Post by hutthaya »

ขอบคุณค่ะอาจารย์ที่คอยเตือนเสมอ

hutthaya wrote:คือตอนนี้สามารถเบราซ์นำชื่อไฟล์มาแสดงที่ช่องเซลได้แล้วค่ะนูอยากให้ไฟล์ c.123 ที่ sheet :data มาแสดงในไฟล์ aindata ที่ sheet :input data MPS ค่ะ จะมีวิธีไหนดึงข้อมูลมาไว้ข้ามไฟล์ได้หรือปล่าวค่ะอาจารย์
maindata.xlsm

ไฟล์ที่ใช้ในการ brows
c.123.xlsm

Code: Select all

Option Explicit

Public MPS_NAME As String
'brows1
Sub Browse1()   
Dim FName As Variant
FName = Application.GetOpenFilename(filefilter:="All Files (*.*),*.txt,All Files (*.*),*.*")
If FName <> "False" Then
Sheet7.Cells(25, 3) = FName
End If
End Sub

'brows 2
Sub Browse2()
Dim FName As Variant
FName = Application.GetOpenFilename(filefilter:="All Files (*.*),*.txt,All Files (*.*),*.*")
If FName <> "False" Then
Sheet7.Cells(29, 3) = FName
End If
End Sub
'address file
Function IsFileOpened(StrFilePath As String) As Integer
    Dim FileNum As Integer
     
     'First check filepath exists
    If Len(Dir(StrFilePath)) > 0 Then
        FileNum = FreeFile()
        On Error Resume Next
        Open StrFilePath For Input Lock Read As #FileNum  ' Open file and lock it.
        If Err.Number <> 0 Then
            IsFileOpened = 1 'File open
        Else
            IsFileOpened = 0 'File Closed
        End If
        Close FileNum
    Else
        IsFileOpened = 2 'File not found
    End If
     
End Function
'open file
Public Function OpenFile(filename As String)

    If IsFileOpened(filename) <> 1 Then
      'file is closed/doesn't exist - take appropriate action!
      Workbooks.Open (filename)
      
      'MsgBox ("error open file")
    Else
        On Error GoTo ErrorHandler
        
        Workbooks.Open (filename)
    End If
    
ErrorHandler:
    'MsgBox ("error open file")

End Function

Function isWorkbookExist(newWS As String)
    Dim ws As Worksheet
    isWorkbookExist = False
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name = newWS Then
            isWorkbookExist = True
            Exit For
        End If
    Next
    
End Function
User avatar
snasui
Site Admin
Site Admin
Posts: 31190
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#6

Post by snasui »

:D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Sub test()
    Workbooks("c.123.xlsm").Sheets("Data").Range("a1").CurrentRegion.Copy _
       Workbooks("maindata.xlsm").Sheets("input data MPS1").Range("a1")
End Sub
hutthaya
Member
Member
Posts: 57
Joined: Thu Nov 14, 2013 2:56 pm

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#7

Post by hutthaya »

แล้วถ้าเกิดไฟล์ที่ brows เข้ามาไม่ได้เป็นชื่อไฟล์ชื่อนี้ตลอดละค่ะอาจารย์
คือจะนำมาจากที่อยู่ของไฟล์อีกทีค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31190
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#8

Post by snasui »

:D ก็ต้องให้ตัวแปรกับไฟล์ที่ Browse มาวาง แล้วนำตัวแปรนั้นมาใช้ในการ Copy, วาง ฯลฯ ครับ
hutthaya
Member
Member
Posts: 57
Joined: Thu Nov 14, 2013 2:56 pm

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#9

Post by hutthaya »

หนูลองใช้แบบหาตำแหน่งที่อยู่ไฟล์ด้วยวิธีนี้ตามหนังสือก่อนค่ะ
แต่ไม่เข้าใจว่าทำไมถึงดึงข้อมูลจากไฟล์ excel ไม่ได้

Code: Select all

Function getfilesheetdataMPS1()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim wk As Workbook
Dim i As Integer, j As Integer
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Sheet7.Cells(25, 3) & ";Extended Properties=Excel 12.0;"  ' เจอที่อยู่ไฟล์
cn = "SELECT * FROM [Data1$A1:AH20000]"

Workheets.Add
Set ws = ActiveSheet

Set lo = ws.ListObjects.Add( _
              SourceType:=xlSrcQuery, _
              Source:=rs, _
              Destination:=ws.Range("A1"))
              
With lo
  .Name = "Table2"
  .TableStyle = "TableStyleMedium2"
  .QueryTable.Refresh
End With


End Function
User avatar
snasui
Site Admin
Site Admin
Posts: 31190
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#10

Post by snasui »

:D cn = "SELECT * FROM [Data1$A1:AH20000]" บรรทัดนี้ไม่น่าจะถูกต้อง

cn คือ Connection String ใช้สำหรับติดต่อกับ Database ปกติจะไม่ Assign SQL statement ให้กับ Connection String แต่สร้างตัวแปรเข้ามาเก็บ SQL statement ไว้ต่างหาก

นอกจากนี้ปกติจะใช้ Recordset เข้ามาเก็บค่าจาก Database ซึ่งก็คือตัวแปร rs ที่เขียนมา แต่จาก Code ที่โพสต์มานั้น ยังไม่ได้ใช้ rs ในการเปิด Connection String และ เรียก SQL Statement แต่อย่างใด

ตัวอย่าง

Code: Select all

...
sql = "select * from" & shtName
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" _
    & "Data Source=" & sFile & ";" _
    & "Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
rs.Open sql, cn
...
hutthaya
Member
Member
Posts: 57
Joined: Thu Nov 14, 2013 2:56 pm

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#11

Post by hutthaya »

หนูลองใช้วิธีนี้ดูค่ะอาจารย์คิดว่าอาจจะง่ายกว่าแต่ติดตรง
บรรทัดนี้ Sheets("Data").Activate
พอสั่งเปิดไฟล์ได้แล้วพอจะมาหน้า Data เพื่อที่จะก๊อปปี้ข้อมูลในชีตนี้กลับไม่ได้ค่ะ
ThisWorkbook.Activate 'ตรงนี้เราอ้างถึง pathที่จะเปิดไฟล์ได้ไหมค่ะ

Code: Select all

Sub GetDataMPS()

    Application.ScreenUpdating = False
       MPS1_NAME = Sheet7.Cells(25, 3)

 
OpenFile (MPS1_NAME)
  ThisWorkbook.Activate
    Sheets("Data").Activate
    Cells.Select
    Selection.Copy
    Windows("MPS COMPAIR_rev02.xlsm").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Sheets("MPS COMPARING TOOLS").Select
    

End Sub
hutthaya
Member
Member
Posts: 57
Joined: Thu Nov 14, 2013 2:56 pm

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#12

Post by hutthaya »

วิธตัด path ไฟล์ทำยังไงหรอค่ะอาจารย์อยากให้แสดงแค่ชื่อไฟล์ Workbooks(MPS1_NAME) ยังแสดงออกมาทั้ง path เลยค่ะ

Code: Select all

Workbooks(MPS1_NAME).Sheets("Data").Activate
User avatar
snasui
Site Admin
Site Admin
Posts: 31190
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#13

Post by snasui »

hutthaya wrote:หนูลองใช้วิธีนี้ดูค่ะอาจารย์คิดว่าอาจจะง่ายกว่าแต่ติดตรง
บรรทัดนี้ Sheets("Data").Activate
พอสั่งเปิดไฟล์ได้แล้วพอจะมาหน้า Data เพื่อที่จะก๊อปปี้ข้อมูลในชีตนี้กลับไม่ได้ค่ะ
ThisWorkbook.Activate 'ตรงนี้เราอ้างถึง pathที่จะเปิดไฟล์ได้ไหมค่ะ
...
hutthaya wrote:วิธตัด path ไฟล์ทำยังไงหรอค่ะอาจารย์อยากให้แสดงแค่ชื่อไฟล์ Workbooks(MPS1_NAME) ยังแสดงออกมาทั้ง path เลยค่ะ

Code: Select all

Workbooks(MPS1_NAME).Sheets("Data").Activate
:D ลองตรวจสอบว่า ThisWorkbook ทีอ้างถึงนั้นคือไฟล์ไหน ถ้าหาก ThisWorkbook ไม่มีชีท Data ก็ย่อมจะเกิด Error

การที่จะ Activate ไฟล์ใด ๆ เราควรจะอ้างถึงตัวแปรที่ให้ไว้กับไฟล์นั้น ยกเว้นอ้างถึง Workbook ที่ทำงานอยู่ปัจจุบัน กรณีอยากทราบว่า ThisWorkbook คือไฟล์ใด สามารถทดสอบด้วยการใช้ MsgBox ThisWorkbook.Name มาช่วยทดสอบ และใช้ ThisWorkbook.Name เพื่อตัดมาเฉพาะชื่อโดยไม่เอา Path ได้
hutthaya
Member
Member
Posts: 57
Joined: Thu Nov 14, 2013 2:56 pm

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#14

Post by hutthaya »

สั่งปิดไฟล์ workbook โดยไม่ต้องถาม save หรือไม่ เขียนยังไงค่ะอาจารย์ :D


Workbooks(f).Close
hutthaya
Member
Member
Posts: 57
Joined: Thu Nov 14, 2013 2:56 pm

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#15

Post by hutthaya »

ได้หมดแล้วค่ะอาจารย์ ขอบคุณอาจาร์ยที่คอยแนะนำค่ะ :D

Code: Select all

Sub GetDataMPS1()  'input data mps1
On Error Resume Next
Dim filename As String
Dim Directory As String
Dim FileSource As String
 Dim f As String

    Application.ScreenUpdating = False
    MPS1_NAME = Sheet7.Cells(25, 3)

      f = Dir(Directory) 'use this line for all types or next  line for only xls
   f = Dir(Directory & "*.xls")
    
 
        f = Dir
        If f <> "" Then
                     OpenFile (MPS1_NAME)
                          Workbooks(f).Activate
                          Sheets("Data").Activate
                   Cells.Select
                   Selection.Copy
                   Windows("MPS COMPAIR_rev02.xlsm").Activate
                Sheets("input data MPS1").Activate
                   Range("A1").Select
                   ActiveSheet.Paste
                   
                   
    
        End If

ActiveWorkbook(f).Close savechanges:=False

     
 

End Sub
hutthaya
Member
Member
Posts: 57
Joined: Thu Nov 14, 2013 2:56 pm

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#16

Post by hutthaya »

สั่งปิดไฟล์ไม่ได้ค่ะอาจารย์วันนั้นลองแล้วได้แต่พอมาลองรันวันนี้กลับไม่ยอมปิดไฟล์ที่เปิดมาแล้วค่ะ
ActiveWorkbook(s).Close savechanges:=False
พอเข้าเงื่อนไขการปิดไฟล์นี้กลับไม่ยอมปิดค่ะ

Code: Select all

Sub GetDataMPS1()  'input data mps1
On Error Resume Next
Dim MPS1_NAME As String
Dim filename As String
 Dim s As String

    Application.ScreenUpdating = False
    MPS1_NAME = Sheet7.Cells(25, 3)

      s = Dir(MPS1_NAME) 'use this line for all types or next  line for only xls
         
        If s <> "" Then
                         OpenFile (MPS1_NAME)
                          Workbooks(s).Activate
                          Sheets("Data").Activate
                          Cells.Select
                          Selection.Copy
                         Windows("MPS COMPAIR_rev02.xlsm").Activate
                          Sheets("input data MPS1").Activate
                           Range("A1").Select
                            ActiveSheet.Paste
         
        End If
           [color=#FF0000] ActiveWorkbook(s).Close savechanges:=False[/color] 
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 31190
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ชื่อไฟล์ที่เบราขึ้นมาแสดงที่หน้าตารางข้ามชีท

#17

Post by snasui »

:D ใน Code ไม่สามารถระบายสีได้ ให้ใช้ Comment เข้าไปแทนครับ

สำหรับ ActiveWorkbook ไม่มี Parameter ครับ ถ้าใส่ไปเป็นเช่น ActiveWorkbook(f) ก็จะ Error เพราะ ActiveWorkbook ถือว่าเป็นไฟล์ปัจจุบันอยู่แล้ว

หากต้องการปิดไฟล์ตามตัวแปร f โดยไม่ Save สามารถใช้ Workbooks(f).Close False ได้ครับ
Post Reply