: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

Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#1

Post by March201711 »

คือ Save file เป็น ไฟล์ใหม่ที่เป็น .xlsm ที่ยังใช้ run marco ได้ เหมือนไฟล์เดิม และทำการ breaklink ข้อมูลทั้งหมดทุกไฟล์ (จริงๆมีทั้งหมด 20 ไฟล์ แต่ยกมาบางตัวอย่างแค่ 3-4 ไฟล์ค่ะ) พอ run save เป็นไฟล์ใหม่ที่เป็น marco แล้ว ไฟล์ใหม่ที่ได้ พอกดปุ่ม A_1, B_1, C_1 แล้ว ทำไม run marco ไม่เหมือนไฟล์เดิมคะ ขอบคุณค่ะ

Code: Select all

Sub ExportFile_update()				
								
    Dim wb As Workbook				
    Dim lks As Variant				
    Dim i As Integer				
    				
    Sheets(Array("check", "AAA", "BBB", "CCC")).Select				
				
   Sheets(Array("check", "AAA", "BBB", "CCC")).Copy				
				
    				
    Set wb = ActiveWorkbook				
    lks = wb.LinkSources(Type:=xlExcelLinks)				
    				
    With wb				
        .SaveAs Filename:="D:\MyCom\TestRun.xlsm", _				
        Password:="", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False				
        For i = LBound(lks) To UBound(lks)				
            .BreakLink Name:=lks(i), Type:=xlExcelLinks				
        Next i				
    End With				
   				
    Range("M5").Select				
    ActiveWindow.Application.WindowState = xlNormal				
    				
    ActiveWorkbook.Save				
    				
    Windows("Info_Main.xlsm").Activate				
    Sheets("check").Select				
    Range("G1").Select				
				   				
End Sub  
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#2

Post by snasui »

:D ที่ Run Macro ไม่ได้เพราะว่าไฟล์ใหม่ไม่ได้มี Module ของคำสั่งต่าง ๆ ติดไปด้วยครับ

การจะให้คำสั่ง VBA ติดไปด้วยให้เลือก Save As จากไฟล์ต้นฉบับไปใช้จึงจะได้ Code VBA ไปด้วย

การคัดลอกเฉพาะ Sheet ที่ต้องการไปใช้จะไม่มี Code ติดไปด้วยแต่อย่างใดครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#3

Post by March201711 »

ก็เบือกSave จากต้นฉบับแล้วนะคะ แต่ทำไมไม่ตามต้นฉบับมาด้วยคะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#4

Post by snasui »

:D Code ที่เขียนมาไม่เรียกว่าเลือก Save As จากต้นฉบับครับ

ถ้าเลือก Save As จากต้นฉบับ ไม่จำเป็นต้องคัดลอกชีตมาใช้ ไม่จำเป็นต้อง Set ให้ wb = ActiveWorkbook

เมื่อคัดลอกชีตมาใช้มันจะเปิดไฟล์ใหม่ ดังนั้น ActiveWorkbook คือไฟล์ใหม่ที่ไม่มี Code ครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#5

Post by March201711 »

ถ้าเลือก Save As จากต้นฉบับ ไม่จำเป็นต้องคัดลอกชีตมาใช้ ไม่จำเป็นต้อง Set ให้ wb = ActiveWorkbook
เอาออกแล้วค่ะ แต่ขึ้น debug น่ะค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#6

Post by snasui »

:D การเอาออกแบบนั้นใช้การไม่ได้ครับ

Record Macro ใหม่ Backup ไฟล์เดิมไว้ก่อนครับ

สิ่งที่ต้องทำด้วย Macro คือ
  1. Remove links
  2. Save as เป็นไฟล์ใหม่
ก็จะได้ไฟล์ใหม่มี Code มาพร้อมให้ใช้
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#7

Post by March201711 »

โดยไม่ต้องกำหนด Dim , with...end with, for next เลยหรอคะ มันก็จะbreaklink ไม่หมดถ้ามีfile เดือนใหม่ๆ เข้ามาน่ะค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#8

Post by snasui »

:D แบบนั้นไม่เรียกว่า Macro แต่เป็นการเขียน VBA

Dim ต่าง ๆ ต้องเขียนเข้าไปเอง แต่การ Record Macro ได้มาจากการบันทึกหน้าจอของโปรแกรมและจะไม่มี Dim ติดมาด้วย ผมแจ้งให้ Record Macro ได้ Code มาแล้วค่อยปรับใช้ ควรเริ่มการทำงานแบบนี้ก่อนสำหรับมือใหม่ครับ :roll:
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#9

Post by March201711 »

ถ้ามีไฟล์ใหม่ๆเข้ามาต้องมาปรับเองทุกครั้งหรอคะ ถ้าใช้ Dim กำหนดเข้าไปก็ต้องแก้มือเองทุกครั้งเลยสินะคะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#10

Post by snasui »

:D กรุณาอ่านโพสต์ #8 อ่านแล้วไม่เข้าใจ ถามมาได้เรื่อย ๆ ครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#11

Post by March201711 »

ทำการ record marcoแล้ว ถ้ามีเดือนใหม่เช่น เดือน 4,5,6.....เพิ่มขึ้นมาทุกๆเดือน ต้องเข้าไปปรีบแก้ code vba เองทุกครั่ง อยากให้ run marco แล้วให้มัน auto breaklink เองทั้งหมด น่ะค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#12

Post by snasui »

:D ที่ Record Macro มานั้นผิดลำดับจากที่ผมแจ้งไปครับ
snasui wrote: Sun Apr 26, 2020 8:48 am :D การเอาออกแบบนั้นใช้การไม่ได้ครับ

Record Macro ใหม่ Backup ไฟล์เดิมไว้ก่อนครับ

สิ่งที่ต้องทำด้วย Macro คือ
  1. Remove links
  2. Save as เป็นไฟล์ใหม่
ก็จะได้ไฟล์ใหม่มี Code มาพร้อมให้ใช้
ตัวอย่างการปรับ Code หลังจากได้ Macro มาแล้วจะเป็นตามด้านล่าง

Code: Select all

Dim lks As Variant, i As Integer
With ThisWorkbook
    lks = .LinkSources(Type:=xlLinkTypeExcelLinks)
    For i = LBound(lks) To UBound(lks)
        .BreakLink Name:=lks(i), Type:=xlExcelLinks
    Next i
End With
ChDir "D:\MyCom"
ActiveWorkbook.SaveAs Filename:="D:\MyCom\Test_run.xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
จะเห็นว่าเหลือ Code ใดที่จำเป็นต้องใช้เพื่อให้เป็นไฟล์ใหม่ที่มี Macro ติดไปด้วย

การนำ Code ที่ไม่เข้าใจมาใช้ย่อมจะทำให้หลงประเด็นแม้ผมแจ้งไปแล้วก็ยังปรับมาไม่ครบถ้วน ผมจึงพยายามให้เริ่มจาก Code ที่สามารถเข้าใจได้แล้วปรับความสามารถเข้ามาเรื่อย ๆ สิ่งที่ผมแจ้งไปย่อมมีความหมาย เพราะได้ปูทางไว้แล้วว่าแนะนำอย่างไรต่อไปให้ง่ายและสะดวกต่อความเข้าใจครับ :D
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#13

Post by March201711 »

สงสัยค่ะ ถ้าสลับขั้นตอนก่อนหลังจะทำให้ code vba เปลี่ยนความหมายไปด้วยหรือคะ คือcode vba มีความหมายซับซ้อนมาก ขอบคุณอาจารย์ที่ปูทางให้ค่ะ :D
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#14

Post by snasui »

March201711 wrote: Sun Apr 26, 2020 4:23 pm ถ้าสลับขั้นตอนก่อนหลังจะทำให้ code vba เปลี่ยนความหมายไปด้วย
:D ขึ้นกับลักษณะของงาน แต่โดยปกติการเรียงลำดับ Code ย่อมส่งผลต่อผลลัพธ์เสมอครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: Breaklink แล้ว Save เป็น Marco แล้วกด run marco ไม่ได้

#15

Post by March201711 »

ค่ะ เข้าใจแล้วค่ะ ขอบคุณอาจารย์มากค่ะ :D
Post Reply