Note: The other languages of the website are Google-translated. Back to English

จะติดตามการเปลี่ยนแปลงโดยไม่แชร์สมุดงานได้อย่างไร?

โดยปกติเมื่อคุณใช้คุณลักษณะการติดตามการเปลี่ยนแปลงใน Excel สมุดงานจะถูกแชร์พร้อมกันซึ่งจะน่ารำคาญเนื่องจากคุณลักษณะบางอย่างใน Excel จะถูกปิดใช้งาน คุณจะติดตามการเปลี่ยนแปลงโดยไม่แชร์สมุดงานได้อย่างไร ที่นี่ฉันจะแนะนำรหัส VBA ให้คุณ

ติดตามการเปลี่ยนแปลงโดยไม่ต้องแชร์เวิร์กบุ๊กด้วยรหัส VBA


ลูกศรสีฟ้าฟองขวา แปลงข้อความเป็นตารางใน Outlook

ไม่มีวิธีโดยตรงในการแก้ปัญหานี้ แต่คุณสามารถใช้รหัส VBA ที่ยืดหยุ่นเพื่อแก้ปัญหาได้โปรดทำดังนี้:

1. คลิกขวาที่แท็บแผ่นงานที่คุณต้องการติดตามเซลล์ที่เปลี่ยนแปลงแล้วเลือก ดูรหัส จากเมนูบริบทในป๊อปอัป Microsoft Visual Basic สำหรับแอปพลิเคชัน โปรดคัดลอกและวางรหัสต่อไปนี้ลงในช่องว่าง โมดูล:

รหัส VBA: ติดตามการเปลี่ยนแปลงโดยไม่ต้องแชร์สมุดงาน:

Private Sub Worksheet_Change(ByVal Target As Range)
  'Updateby Extendoffice
    Const xRg As String = "A1:Z1000"
    Dim strOld As String
    Dim strNew As String
    Dim strCmt As String
    Dim xLen As Long
    With Target(1)
        If Intersect(.Cells, Range(xRg)) Is Nothing Then Exit Sub
        strNew = .Text
        Application.EnableEvents = False
        Application.Undo
        strOld = .Text
        .Value = strNew
        Application.EnableEvents = True
        strCmt = "Edit: " & Format$(Now, "dd Mmm YYYY hh:nn:ss") & " by " & _
        Application.UserName & Chr(10) & "Previous Text :- " & strOld
        If Target(1).Comment Is Nothing Then
            .AddComment
        Else
            xLen = Len(.Comment.Shape.TextFrame.Characters.Text)
        End If
        With .Comment.Shape.TextFrame
            .AutoSize = True
            .Characters(Start:=xLen + 1).Insert IIf(xLen, vbLf, "") & strCmt
        End With
    End With
End Sub

การเปลี่ยนแปลงการติดตาม doc โดยไม่ต้องแชร์ 1

หมายเหตุ: ในโค้ดด้านบน A1: Z1000 คือช่วงข้อมูลที่คุณต้องการติดตามการเปลี่ยนแปลง

2. จากนั้นบันทึกและปิดหน้าต่างรหัสนี้ตอนนี้เมื่อคุณเปลี่ยนค่าในเซลล์ใด ๆ ภายในช่วงที่ระบุที่คุณตั้งไว้ในโค้ดเซลล์จะถูกติดตามและจะไม่มีการแชร์สมุดงาน ดูภาพหน้าจอ:

การเปลี่ยนแปลงการติดตาม doc โดยไม่ต้องแชร์ 2


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (14)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
การทำงานที่ดี. ขออภัย โค้ดของคุณมีปัญหาบางประการ - มันจะเพิ่มความคิดเห็นแม้ในรายการแรกของเซลล์ ฉันจะติดตามการเปลี่ยนแปลงจากรายการที่สองไม่ใช่รายการแรกได้อย่างไร - เมื่อฉันป้อนค่าในเซลล์ ฉันไม่สามารถ "เลิกทำ" - ใช้กับโต๊ะไม่ได้ ลองใช้บนโต๊ะแล้วลองเพิ่มหรือลบดิบและรหัสจะพัง ฉันหวังว่าฉันจะมีความรู้เพื่อให้โค้ดทำงานได้ตามที่ฉันต้องการดังที่อธิบายไว้ข้างต้น
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมีปัญหาเดียวกัน ปุ่ม "เลิกทำ" และ "ทำซ้ำ" ไม่ทำงานอีกต่อไป มีวิธีแก้ไขปัญหานี้หรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันลองใช้โค้ด VBA นี้ในแผ่นงาน excel ของฉัน แต่มันทำให้ฉันผิดพลาด ฉันไม่รู้ว่ามาโครนี้ควรถูกเรียกจากที่ใด และอาร์กิวเมนต์ของฟังก์ชันที่คุณระบุเมื่อถูกเรียกคืออะไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีบันทึกการเปลี่ยนแปลงสำหรับแท็บทั้งหมดในเวิร์กบุ๊ก และบันทึกการเปลี่ยนแปลงในสเปรดชีตใหม่หรือไม่ นั่นคงจะเยี่ยมมาก ... และฉันไม่พบข้อมูลใด ๆ ในอินเทอร์เน็ตที่มีกระบวนการติดตามประเภทนี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี jfjoyner หากต้องการเปลี่ยนรหัสนี้สำหรับแผ่นงานทั้งหมด และบันทึกการเปลี่ยนแปลงแทร็กไปยังแผ่นงานอื่น โปรดใช้รหัสด้านล่าง:
หมายเหตุ: โปรดใส่รหัสนี้ลงในโมดูล ThisWorkbook
Option Explicit
Dim mStrRgAddress As String
Dim mStrRgValue As String

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Const xRg As String = "A1:Z1000"
Const xSheetName As String = "Record sheet" 'The sheet that you want to put the track changes, please change the sheet name to your own.
Dim strOld As String
Dim strNew As String
Dim strCmt As String
Dim xLen As Long
Dim xSheet As Worksheet
Dim xRgCell As Range
Dim xRgCell2 As Range
On Error Resume Next
Set xSheet = Application.Sheets.Item(xSheetName)
If mStrRgAddress <> "" Then
Set xRgCell = Range(mStrRgAddress)
If xRgCell.Text <> mStrRgValue Then
strCmt = mStrRgAddress & " : " & Format$(Now, "dd Mmm YYYY hh:nn:ss") & " by " & _
Application.UserName & Chr(10) & "Previous Text :- " & mStrRgValue
Set xRgCell2 = xSheet.Range("a1048576").End(xlUp)
If xRgCell2.AddressLocal = xSheet.Range("A1").AddressLocal Then
If xRgCell2.Value <> "" Then
Set xRgCell2 = xRgCell2.Offset(1, 0)
End If
Else
Set xRgCell2 = xRgCell2.Offset(1, 0)
End If
xRgCell2.Value = strCmt
End If
End If
If xSheet.Name = Sh.Name Then Exit Sub
mStrRgValue = Target.Text
mStrRgAddress = Target.AddressLocal(False, False, , True)
End Sub
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณ มันดีมาก แต่ฉันไม่สามารถใช้งานได้ ฉันคิดว่ามันทำงานโดยอัตโนมัติ หมายความว่าไม่จำเป็นต้องคลิกที่ "เรียกใช้" ฉันเปลี่ยนชื่อเวิร์กชีตเป็น {--TRACK_CHANGES--} เพื่อทำตามคำแนะนำที่คุณปล่อยให้เป็นสีเขียว จนถึงตอนนี้ก็ยังไม่ได้บันทึกอะไรเลย ขอบคุณ.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณอีกครั้ง skyyang ฉันยังสังเกตเห็นว่าเมื่อฉันวางสิ่งนี้ลงในโมดูลสำหรับสมุดงานนี้ สเปรดชีตขนาดใหญ่ของฉันเริ่มคำนวณอย่างต่อเนื่องและไม่หยุด ฉันไม่รู้อะไรเกี่ยวกับการเขียนโปรแกรม VBA แต่ฉันพบการสนทนานี้เกี่ยวกับหัวข้อเดียวกัน อาจอธิบายได้ว่าทำไมการคำนวณจึงดำเนินต่อไปไม่รู้จบ https://www.mrexcel.com/board/threads/continuous-calculation-wont-stop.1179541/page-6#posts 
ปัญหาในเว็บไซต์นี้คือ:แต่เมื่อปัญหาการคำนวณแบบต่อเนื่องเริ่มต้นขึ้น ก็จะเกิดผลต่อเนื่อง การกดปุ่ม Esc จะทำให้การคำนวณหยุดชะงัก แต่ระบบจะเริ่มสำรองข้อมูลอีกครั้ง เว้นแต่ฉันจะเปลี่ยนไปใช้การคำนวณด้วยตนเอง โหมดคำนวณแบบแมนนวลทำงานได้ดีจนกว่าฉันจะเรียกใช้มาโครใด ๆ ซึ่งจะจบลงด้วยการเปิดใช้งาน AutoCalc อีกครั้ง... ฉันผ่านแต่ละเวิร์กชีตในแบบจำลองและเรียกใช้การตรวจสอบข้อผิดพลาดแต่ไม่มีประโยชน์
ข้อสรุปของพวกเขาคือ: สิ่งนี้เป็นจริง: เมื่อคุณอ้างถึงอ็อบเจ็กต์ของฟอร์มหรือคุณสมบัติของมัน (frmBudget.startupposition = 3) - อ็อบเจกต์จะถูกโหลดจนกว่าคุณจะยกเลิกการโหลดหรือรีเซ็ตโปรเจ็กต์ของคุณ (การสูญเสียสถานะ - ณ จุดนี้ ตัวแปรทั้งหมดจะถูกรีเซ็ต และค่าที่สูญเสียไป)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี jfjoyner3 สบายดีไหม ดังที่คุณเห็นในภาพหน้าจอทั้งสองนี้ ฉันเปลี่ยน "แผ่นบันทึก" เป็น "แผ่นที่ 2" ในรหัส VBA 
จากนั้นฉันก็กลับไปที่สมุดงาน Excel หลังจากที่ฉันทำการเปลี่ยนแปลงบางอย่างในชีต1 การเปลี่ยนแปลงทั้งหมดเหล่านี้จะถูกบันทึกไว้ในชีต2
สำหรับปัญหาการคำนวณอย่างต่อเนื่อง คุณช่วยส่งภาพหน้าจอหรือวิดีโอเกี่ยวกับปัญหาของคุณมาให้เราได้ไหม เพื่อให้เราเข้าใจอย่างถ่องแท้ว่าเกิดอะไรขึ้นที่นี่ ขอบคุณ! 
ขอแสดงความนับถือ Mandy
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมาก!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคุณ jfjoyner3 ยินดีต้อนรับ หลังจากที่คุณบันทึกสเปรดชีตด้วยโค้ด VBA ของมาโคร มาโครจะเริ่มต้นโดยอัตโนมัติทุกครั้งที่คุณเปิดสเปรดชีต ไม่จำเป็นต้องเริ่มต้นด้วยตนเอง คำถามใด ๆ โปรดอย่าลังเลที่จะติดต่อเรา ขอให้มีวันที่ดี! ขอแสดงความนับถือ Mandy   
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
MandyZhou ขอบคุณ มาโครนี้เริ่มทำงานโดยอัตโนมัติเมื่อฉันเปิดสเปรดชีตหรือไม่ หรือฉันต้องเริ่มด้วยตนเอง? 
ปัญหาการคำนวณอย่างต่อเนื่องเกี่ยวข้องกับแอปอื่น 
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี jfjoyner3 ขั้นแรก หลังจากที่คุณคัดลอกโค้ด VBA ของเราลงในโมดูล ThisWorkbook โค้ดจะทำงานโดยอัตโนมัติ ประการที่สอง โค้ด VBA ของเราใช้งานได้ โปรดดูภาพหน้าจอทั้งสองที่ฉันอัปโหลดในความคิดเห็นนี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Mandyzhou ขอขอบคุณอีกครั้งสำหรับคำแนะนำโดยละเอียดนี้ ฉันได้รับข้อผิดพลาดทางไวยากรณ์และชี้ให้ฉันไปที่บรรทัดนี้:

ถ้า mStrRgAddress <> "" แล้ว

คุณสามารถเป็นแนวทางในการแก้ไขและลบ Syntax Error ได้หรือไม่?
ขอขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
การดักจับแมโครนี้เปลี่ยนแปลงค่าของสูตรทุกครั้งที่อัปเดตแบบจำลองข้อมูลของฉันหรือไม่
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL