: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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#1

Post by suka »

เรียนอาจารย์และท่านผู้รู้ค่ะ

เมื่อใช้ไฟล์แชร์ร่วมกัน และมีการบันทึกข้อมูลไปวางที่ไฟล์แชร์พร้อมกัน
เกิดปัญหาตามภาพรูปแนบค่ะ

พอกดยอมรับของฉันทั้งหมด ข้อมูลก็ไปทับข้อมูลใหม่ของผู้อื่น
พอกดยอมรับของผู้อื่นทั้งหมด ข้อมูลใหม่ของเราก็โดนทับหายค่ะ

ขอรบกวนแนะนำทางแก้น่ะค่ะ ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#2

Post by snasui »

:D เลือกเป็นยอมรับของฉันหรือยอมรับของผู้อื่นแล้วแต่ว่าต้องการของใคร หากต้องการยอมรับทั้งหมดค่อยเลือกยอมรับทั้งหมด (ไม่ว่าจะทั้งหมดของใคร)
ปกติการบันทึกแบบแชร์ไฟล์ ควรสั่งให้ Refresh และเมื่อบันทึกแล้ว Save ทันทีครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#3

Post by suka »

Code ทั้งชุดในไฟล์ที่ใช้บันทึกข้อมูลเพื่อวางไปยังไฟล์ที่ใชแชร์ค่ะ

Code: Select all

Sub PasteData()
Dim wbShare As Workbook
Dim formBook As Workbook
Dim i As Integer
Dim rs As Range
Dim rt As Range
Set formBook = ThisWorkbook
Set wbShare = Workbooks("Ph_BookShare.xlsx")
    Application.ScreenUpdating = False
    With formBook
    i = Worksheets("Enterthedata").Range("C224")
    End With
    With Worksheets("Template")
        Set rs = .Range(.Range("A2"), .Range("AF" & i + 1))
    End With

    Set rt = wbShare.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
    If Worksheets("Enterthedata").Range("C224") = True Then
        MsgBox "Please check your data. This transaction already recorded."
        Exit Sub
    End If
  
    If Worksheets("Enterthedata").Range("B204") = "" Then
        MsgBox "Your data is empty. Fill your data and click record button again."
        Exit Sub
    End If
    rs.Copy: rt.PasteSpecial xlPasteValues
   
    Application.CutCopyMode = False
    Sheets("Enterthedata").Range("D2,K2,B204:B219,D204:D219,L204:L219,D221,E221,E204:F219,L204:M219,O204:O219").ClearContents
    With Worksheets("Enterthedata")
        .Range("N1") = .Range("N1") + 1
    End With
       Application.ScreenUpdating = True
        Windows("Ph_BookShare.xlsx").Activate
        ActiveWorkbook.Save
       Windows("Purchases.xlsm").Activate
      ActiveWorkbook.Save
End Sub
Code ก่อน End Sub จากเดิม

Code: Select all

Application.ScreenUpdating = True
        Windows("Ph_BookShare.xlsx").Activate
        ActiveWorkbook.Save
ปรับเป็นตามนี้ได้ไหมคะ

Code: Select all

Application.ScreenUpdating = True
        Windows("Ph_BookShare.xlsx").Activate
        ActiveWorkbook.RefreshAll
        ActiveWorkbook.Save
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#4

Post by suka »

จะใช้ Code อย่างไรเพื่อสั่งให้ Refresh ไฟล์คะ Code ด้านบนไม่ Refresh ตามรูปแนบค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#5

Post by snasui »

:D ใช้ Code ActiveWorkbook.Save ก่อนที่จะบันทึกรายการเพื่อทำการ Refresh หลังจากบันทึกรายการแล้วค่อย Save โดย Code นี้อีกรอบครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#6

Post by bank9597 »

:D เพิ่งเจอปัญหานี้มาหมาดๆครับ

วิธีแก้ปัญหาของผมคือ ให้ไฟล์ที่รับข้อมูลปิด แล้วเวลาจะปัญทึกข้อมูลก็ให้เขียนโค๊ดสั่งเปิดไฟล์ขึ้นมาทำการบันทึก และก็เซฟปิดไป

ทำแบบนี้จะไม่มีปัญหาการเซฟทับกัน และยังทำให้ข้อมูล refresh อัตโนมัตเมื่อมีการเปิดปิดไฟล์ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#7

Post by suka »

snasui wrote::D ใช้ Code ActiveWorkbook.Save ก่อนที่จะบันทึกรายการเพื่อทำการ Refresh หลังจากบันทึกรายการแล้วค่อย Save โดย Code นี้อีกรอบครับ
ใช่วาง Code แบบนี้ไหมคะอาจารย์ error ตามรูปแนบค่ะ

Code: Select all

Application.ScreenUpdating = True
        Windows("Ph_BookShare.xlsx").Activate
        ActiveWorkbook.Save
        ActiveWorkbook.Refresh
        ActiveWorkbook.Save
You do not have the required permissions to view the files attached to this post.
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#8

Post by suka »

bank9597 wrote::D เพิ่งเจอปัญหานี้มาหมาดๆครับ

วิธีแก้ปัญหาของผมคือ ให้ไฟล์ที่รับข้อมูลปิด แล้วเวลาจะปัญทึกข้อมูลก็ให้เขียนโค๊ดสั่งเปิดไฟล์ขึ้นมาทำการบันทึก และก็เซฟปิดไป

ทำแบบนี้จะไม่มีปัญหาการเซฟทับกัน และยังทำให้ข้อมูล refresh อัตโนมัตเมื่อมีการเปิดปิดไฟล์ :D
ขอบคุณค่ะคุณ bank9597 ได้เป็นอีกหนึ่งทางเลือกค่ะ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#9

Post by bank9597 »

:D ศึกษาตามลิงค์ด้านล่างได้ครับ ในคำตอบที่ 2 จะมีตัวอย่าง code ลองทดสอบดูครับ เผื่อเป็นทางเลือกครับ

http://stackoverflow.com/questions/1302 ... o-next-row
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#10

Post by snasui »

:D ActiveWorkbook.Refresh ไม่ต้องใช้ครับ

ลองทบทวนอีกครั้งอย่างละเอียดว่าผมเขียนไว้ว่าอย่างไร ให้ทำตามนั้นครับ :ard:
snasui wrote: :D ใช้ Code ActiveWorkbook.Save ก่อนที่จะบันทึกรายการเพื่อทำการ Refresh หลังจากบันทึกรายการแล้วค่อย Save โดย Code นี้อีกรอบครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#11

Post by suka »

วางแบบนี้ใช่ไหมคะอาจารย์ Code ไม่ฟ้องอะไรแล้วค่ะ

Code: Select all

Application.ScreenUpdating = True
       ActiveWorkbook.Save
        Windows("Ph_BookShare.xlsx").Activate
        ActiveWorkbook.Save
bank9597 wrote::D ศึกษาตามลิงค์ด้านล่างได้ครับ ในคำตอบที่ 2 จะมีตัวอย่าง code ลองทดสอบดูครับ เผื่อเป็นทางเลือกครับ


http://stackoverflow.com/questions/1302 ... o-next-row
:D ขอบคุณค่ะคุณ bank9597
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#12

Post by snasui »

suka wrote:วางแบบนี้ใช่ไหมคะอาจารย์ Code ไม่ฟ้องอะไรแล้วค่ะ
โค้ด:
Application.ScreenUpdating = True
       ActiveWorkbook.Save
        Windows("Ph_BookShare.xlsx").Activate
        ActiveWorkbook.Save
:D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Sub PasteData()
    'Other code
    Set wbShare = Workbooks("Ph_BookShare.xlsx")
    wbShare.Save '<== Add this line for refresh shareworkbook
    Application.ScreenUpdating = False
    With formBook
        i = Worksheets("Enterthedata").Range("C224")
    End With
    With Worksheets("Template")
        Set rs = .Range(.Range("A2"), .Range("AF" & i + 1))
    End With
    
    Set rt = wbShare.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
    If Worksheets("Enterthedata").Range("C224") = True Then
        MsgBox "Please check your data. This transaction already recorded."
        Exit Sub
    End If
    
    If Worksheets("Enterthedata").Range("B204") = "" Then
        MsgBox "Your data is empty. Fill your data and click record button again."
        Exit Sub
    End If
    
    rs.Copy: rt.PasteSpecial xlPasteValues
    wbShare.Save '<==Save after record data
    'Other code
End Sub
ซึ่งจะเป็นไปตามที่ผมแจ้งไปคือ
  1. Save share workbook for refresh before record data
  2. Record data
  3. Save share workbook after record data
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#13

Post by suka »

:thup: ขอบพระคุณค่ะอาจารย์ ได้ตรงตามต้องการแล้วค่ะ

อาจารย์คะขอรบกวนช่วยเรื่องรันเลขที่เอกสารค่ะ Code ทั้งชุด

Code: Select all

Sub PasteData()
        Dim wbShare As Workbook
        Dim formBook As Workbook
        Dim i As Integer
        Dim rs As Range
        Dim rt As Range
        Set formBook = ThisWorkbook
        Set wbShare = Workbooks("AA_BookShare.xlsx")
        wbShare.Save '<== Add this line for refresh shareworkbook
            Application.ScreenUpdating = False
            With formBook
                     i = Worksheets("Enterthedata").Range("C224")
            End With
            With Worksheets("Template")
                    Set rs = .Range(.Range("A2"), .Range("AF" & i + 1))
            End With

        Set rt = wbShare.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
        If Worksheets("Enterthedata").Range("C224") = True Then
                MsgBox "Please check your data. This transaction already recorded."
            Exit Sub
        End If
  
        If Worksheets("Enterthedata").Range("B204") = "" Then
            MsgBox "Your data is empty. Fill your data and click record button again."
            Exit Sub
        End If
        rs.Copy: rt.PasteSpecial xlPasteValues
        wbShare.Save '<==Save after record data
       formBook.Save
            Application.CutCopyMode = False
            Sheets("Enterthedata").Range("D2,K2,B204:B219,D204:D219,L204:L219,D221,E221,E204:F219,L204:M219,O204:O219").ClearContents
        With Worksheets("Enterthedata")
                .Range("N1") = .Range("N1") + 1
        End With
End Sub
ขอรบกวนช่วยแก้เมื่อใช้ Form บันทึกข้อมูลไปที่แชร์ไฟล์พร้อมกันแล้วเลขที่เอกสารที่เซลล์ N1 ชีท Enterthedata ต้วอย่างไฟล์แนบไม่อัพเดทค่ะ

Code: Select all

With Worksheets("Enterthedata")
                .Range("N1") = .Range("N1") + 1
        End With
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#14

Post by snasui »

:D เมื่อต้องการใช้ไฟล์ร่วมกันและมีการบันทึกหลายคนพร้อม ๆ กันได้ เซลล์ N1 จะไม่สามารถกำหนดค่าไว้ลวงหน้าเหมือนลักษณะการจองตัวเลขไว้ได้ครับ วิธีการให้ลำดับที่จะต้องเปลี่ยนไปจากเดิมครับ นั่นคือก่อนที่จะบันทึกรายการให้ตรวจสอบว่าใน Share File มีตัวเลขล่าสุดเท่าใดก็ให้นำเลขนั้นมาใช้และบวกด้วย 1 เข้าไปก่อนแล้วค่อยบันทึกรายการและ Save ครับ ค่าในเซลล์ N1 จึงเป็นค่าที่เพิ่งบันทึกไปล่าสุด ไม่ใช่เลขที่ลำดับถัดไป

ลองเขียน Code มาตามที่ผมแนะนำด้านบนมาก่อน ติดตรงไหนแล้วค่อยดูกันต่อครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#15

Post by suka »

ชอบคุณค่ะอาจารย์
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#16

Post by suka »

snasui wrote::D เมื่อต้องการใช้ไฟล์ร่วมกันและมีการบันทึกหลายคนพร้อม ๆ กันได้ เซลล์ N1 จะไม่สามารถกำหนดค่าไว้ลวงหน้าเหมือนลักษณะการจองตัวเลขไว้ได้ครับ วิธีการให้ลำดับที่จะต้องเปลี่ยนไปจากเดิมครับ นั่นคือก่อนที่จะบันทึกรายการให้ตรวจสอบว่าใน Share File มีตัวเลขล่าสุดเท่าใดก็ให้นำเลขนั้นมาใช้และบวกด้วย 1 เข้าไปก่อนแล้วค่อยบันทึกรายการและ Save ครับ ค่าในเซลล์ N1 จึงเป็นค่าที่เพิ่งบันทึกไปล่าสุด ไม่ใช่เลขที่ลำดับถัดไป

ลองเขียน Code มาตามที่ผมแนะนำด้านบนมาก่อน ติดตรงไหนแล้วค่อยดูกันต่อครับ
เรียนอาจารย์ค่ะ ลองเขียน Code ตามที่อาจารย์แนะนำมาด้านบน ก่อนบันทึกให้ตรวจสอบกลุ่มเอกสารที่คอลัมน์ B และหาตัวเลขล่าสุดที่คอลัมน์ E ไฟล์ AA_BookShare Code เพิ่มเข้ามาเป็นตัวแดงตามรูปแนบค่ะ

Code: Select all

Sub PasteData()
        Dim wbShare As Workbook
        Dim formBook As Workbook
        Dim i As Integer
        Dim e As Integer 'เพื่อทดลองหาตัวเลขล่าสุด
        Dim rs As Range
        Dim rt As Range
        Set formBook = ThisWorkbook
        Set wbShare = Workbooks("AA_BookShare.xlsx")
        With wbShare
                 e = Workbooks.Function.CountA("sheet1").Range("B:B).Columns("E:E")))
         End With
        wbShare.Save '<== Add this line for refresh shareworkbook
Code ทั้งชุดตามนี้ค่ะ

Code: Select all

Sub PasteData()
        Dim wbShare As Workbook
        Dim formBook As Workbook
        Dim i As Integer
        Dim rs As Range
        Dim rt As Range
        Set formBook = ThisWorkbook
        Set wbShare = Workbooks("AA_BookShare.xlsx")
        wbShare.Save '<== Add this line for refresh shareworkbook
            Application.ScreenUpdating = False
            With formBook
                     i = Worksheets("Enterthedata").Range("C224")
            End With
            With Worksheets("Template")
                    Set rs = .Range(.Range("A2"), .Range("AF" & i + 1))
            End With

        Set rt = wbShare.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
        If Worksheets("Enterthedata").Range("C224") = True Then
                MsgBox "Please check your data. This transaction already recorded."
            Exit Sub
        End If
  
        If Worksheets("Enterthedata").Range("B204") = "" Then
            MsgBox "Your data is empty. Fill your data and click record button again."
            Exit Sub
        End If
        rs.Copy: rt.PasteSpecial xlPasteValues
        wbShare.Save '<==Save after record data
       formBook.Save
            Application.CutCopyMode = False
            Sheets("Enterthedata").Range("D2,K2,B204:B219,D204:D219,L204:L219,D221,E221,E204:F219,L204:M219,O204:O219").ClearContents
        With Worksheets("Enterthedata")
                .Range("N1") = .Range("N1") + 1
        End With
End Su
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#17

Post by snasui »

:D จาก dim e as integer หมายถึงกำหนดให้ตัวแปร e มีค่าได้ไม่เกิน 32767 ไม่ทราบว่าจริง ๆ แล้วตัวเลขเกินนี้หรือไม่ หากเกินจะประกาศเป็น Integer ไม่ได้ครับ

สำหรับค่าลำดับที่ที่จะนำมาใช้นั้นค่ามากสุดอยู่บรรทัดสุดท้ายหรือไม่ครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#18

Post by suka »

ค่ะอาจารย์ ค่าตัวเลขเกิน 32767 ค่ะ

ค่าลำดับที่จะนำมาใช้นั้นค่ามากสุดอยู่บรรทัดสุดท้ายค่ะอาจารย์
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#19

Post by snasui »

:D เมื่อเป็นเช่นนั้นให้ประกาศ e เป็น Long ครับ

ตัวอย่างสำหรับการนำค่าสุดท้ายในคอลัมน์ A ของไฟล์ wbShare มาใช้สามารถใช้ Code e = wbShare.range("a" & rows.count).end(xlup).value ลองปรับใช้กับข้อมูลจริงดูครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: เมื่อใช้ไฟล์แชร์ร่วมกันแล้ววางข้อมูลพร้อมกัน

#20

Post by suka »

อาจารย์คะ Code ฟ้องตามรูปแนบนี้ค่ะ ลองเปลี่ยนเป็นหาค่าสุดท้ายในคอลัมน์ E ก็ฟ้องเหมือนกันค่ะ

Code: Select all

With wbShare
        e = wbShare.Range("e" & Rows.Count).End(xlUp).Value
End With
You do not have the required permissions to view the files attached to this post.
Post Reply