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

วิธีบันทึกการเปลี่ยนแปลงค่าในเซลล์ใน Excel

จะบันทึกทุกค่าที่เปลี่ยนแปลงสำหรับเซลล์ที่เปลี่ยนแปลงบ่อยใน Excel ได้อย่างไร? ตัวอย่างเช่นค่าดั้งเดิมในเซลล์ C2 คือ 100 เมื่อเปลี่ยนหมายเลข 100 เป็น 200 ค่าเดิม 100 จะแสดงในเซลล์ D2 โดยอัตโนมัติสำหรับการบันทึก ไปข้างหน้าเพื่อเปลี่ยน 200 เป็น 300 หมายเลข 200 จะถูกแทรกลงในเซลล์ D3 การเปลี่ยนแปลง 300 ถึง 400 จะแสดง 300 เป็น D4 และอื่น ๆ วิธีการในบทความนี้สามารถช่วยให้คุณบรรลุได้

บันทึกการเปลี่ยนแปลงค่าในเซลล์ด้วยรหัส VBA


บันทึกการเปลี่ยนแปลงค่าในเซลล์ด้วยรหัส VBA


โค้ด VBA ด้านล่างนี้สามารถช่วยคุณบันทึกค่าที่เปลี่ยนแปลงทั้งหมดในเซลล์ใน Excel กรุณาดำเนินการดังนี้

1. ในแผ่นงานมีเซลล์ที่คุณต้องการบันทึกการเปลี่ยนแปลงค่าคลิกขวาที่แท็บแผ่นงานแล้วคลิก ดูรหัส จากเมนูบริบท ดูภาพหน้าจอ:

2. จากนั้น Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่างกำลังเปิดขึ้นโปรดคัดลอกโค้ด VBA ด้านล่างลงในหน้าต่างรหัส

รหัส VBA: บันทึกการเปลี่ยนแปลงค่าในเซลล์

Dim xVal As String
'Update by Extendoffice 2018/8/22
Private Sub Worksheet_Change(ByVal Target As Range)
    Static xCount As Integer
    Application.EnableEvents = False
    If Target.Address = Range("C2").Address Then
        Range("D2").Offset(xCount, 0).Value = xVal
        xCount = xCount + 1
    Else
        If xVal <> Range("C2").Value Then
         Range("D2").Offset(xCount, 0).Value = xVal
        xCount = xCount + 1
        End If
    End If
    Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    xVal = Range("C2").Value
End Sub

หมายเหตุ: ในโค้ด C2 คือเซลล์ที่คุณต้องการบันทึกค่าที่เปลี่ยนแปลงทั้งหมด D2 คือเซลล์ที่คุณจะเติมค่าการเปลี่ยนแปลงครั้งแรกของ C2

3 กด อื่น ๆ + Q ปุ่มเพื่อปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

จากนี้ไปทุกครั้งที่คุณเปลี่ยนค่าในเซลล์ C2 ค่าที่เปลี่ยนแปลงก่อนหน้านี้จะถูกบันทึกใน D2 และเซลล์ที่อยู่ด้านล่าง D2


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

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

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

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

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (48)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Hi


วิธีนี้ใช้ได้ผลดีมากหากป้อนค่าใน C2 ในแต่ละครั้ง แต่จะใช้งานไม่ได้หาก C2 มีสูตรอยู่ มีวิธีเดียวกันนี้ แต่มีสูตรใน C2 หรือไม่?


ขอบคุณสำหรับวิธีแก้ปัญหาที่ง่ายนี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
หากคุณพบวิธีการใช้งานหาก C2 มีสูตร โปรดแจ้งให้เราทราบว่าคุณทำได้อย่างไร ฉันไม่สามารถหาวิธีไปที่ใดก็ได้บนอินเทอร์เน็ต
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอให้เป็นวันที่ดี,
รหัสได้รับการปรับให้เหมาะสม โปรดลองและขอบคุณสำหรับความคิดเห็นของคุณ

Dim xVal เป็นสตริง
Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)
Static xCount เป็นจำนวนเต็ม
Application.EnableEvents = เท็จ
ถ้า Target.Address = Range("C2").Address แล้ว
ช่วง ("D2") ออฟเซ็ต (xCount, 0).Value = xVal
xCount = xCount + 1
อื่น
ถ้า xVal <> Range("C2").Value แล้ว
ช่วง ("D2") ออฟเซ็ต (xCount, 0).Value = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = จริง
ย่อยสิ้นสุด
แผ่นงานย่อยส่วนตัว_SelectionChange(ByVal Target As Range)
xVal = ช่วง ("C2") .Value
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ไห่ ,



VBS ข้างต้นเท่านั้น C2 ย้ายไปยัง D2



INEED C2 TO C55 ย้ายไป D2 ถึง D55



คุณสามารถช่วยและส่งให้ฉัน alexmathew33@gmail.com
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
โปรดช่วยฉันในสถานการณ์ด้านล่าง:
จากแผ่นงาน 1:
A1=VALUE (การเปลี่ยนแปลงเนื่องจาก RTD พร้อมสูตร)
B2= VALUE1 (เปลี่ยนแปลงเนื่องจาก RTD พร้อมสูตร)

คัดลอกค่าก่อนหน้าทั้งหมดเซลล์ A1,B1 ลงใน Sheet2 ของคอลัมน์ M,NOF excel หรือ Sheet1 ของ New Workbook

โปรดแชร์กับฉันที่ melukotahari@gmail.com

-เมลูกอตา
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เราสามารถรับ VBS ข้างต้นได้หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
จะเกิดอะไรขึ้นถ้าเซลล์ C2 เป็นสูตร ฉันจะบันทึกค่าของ C2 ได้อย่างไรหากเป็นสูตร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอให้เป็นวันที่ดี,
รหัสได้รับการปรับให้เหมาะสม โปรดลองและขอบคุณสำหรับความคิดเห็นของคุณ

Dim xVal เป็นสตริง
Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)
Static xCount เป็นจำนวนเต็ม
Application.EnableEvents = เท็จ
ถ้า Target.Address = Range("C2").Address แล้ว
ช่วง ("D2") ออฟเซ็ต (xCount, 0).Value = xVal
xCount = xCount + 1
อื่น
ถ้า xVal <> Range("C2").Value แล้ว
ช่วง ("D2") ออฟเซ็ต (xCount, 0).Value = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = จริง
ย่อยสิ้นสุด
แผ่นงานย่อยส่วนตัว_SelectionChange(ByVal Target As Range)
xVal = ช่วง ("C2") .Value
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ไห่ ,



VBS ข้างต้นเท่านั้น C2 ย้ายไปยัง D2



INEED C2 TO C55 ย้ายไป D2 ถึง D55



คุณสามารถช่วยและส่งให้ฉัน alexmathew33@gmail.com
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี -- ฉันรู้สึกขอบคุณมากในบทช่วยสอนนี้...ฉันกำลังพยายามบันทึกค่าที่เปลี่ยนแปลงในสเปรดชีตอื่น ตัวอย่างเช่น ฉันต้องการบันทึกค่าของชีต1 C2 บนชีต2 D2 คุณสามารถให้รหัสที่ปรับปรุงได้หรือไม่?
ขอขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
บันทึกสามารถอยู่ในแนวนอนแทนที่จะเป็นแนวตั้งได้หรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี เป็นไปได้ไหมที่มาโครนี้จะบันทึกสองเซลล์ที่แยกจากกันในสองคอลัมน์ที่แยกจากกัน เช่น. ฉันสามารถบันทึกค่าทั้งหมดจาก A1 ในคอลัมน์ B และค่าทั้งหมดของ C1 ในคอลัมน์ D ได้หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
โปรดลองใช้วิธีการในบทความนี้:
จะจำหรือบันทึกค่าเซลล์ก่อนหน้าของเซลล์ที่เปลี่ยนแปลงใน Excel ได้อย่างไร?
https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับสิ่งนี้ แต่แทนที่จะดำเนินต่อไปตลอดกาลฉันจะรีสตาร์ทที่เซลล์แรกหลังจาก X จำนวนครั้งได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
คุณหมายถึงหลังจากบันทึก X mount ครั้ง คุณต้องการรีสตาร์ทกลับไปที่ค่าระเบียนแรกหรือไม่
ขออภัย ฉันไม่แน่ใจว่าฉันได้รับคำถามของคุณ คงจะดีถ้าคุณสามารถให้ภาพหน้าจอของสิ่งที่คุณพยายามทำ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณ

แต่จะทำอย่างไรถ้าต้องทำซ้ำหลาย ๆ เซลล์
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณ

แต่ฉันจะทำอย่างไรถ้าฉันต้องการทำซ้ำสำหรับดิบ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Peki bu kaydı yatay olarak นาซิล kaydedeceğiz. Satırlara değil Sütunlara kaydetmesini istiyorum. Teşekkürler
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันจะบันทึกหมายเลขทันทีที่สร้างขึ้นไม่ใช่หลังจากสร้างหมายเลขใหม่ได้อย่างไร ปัญหาที่ฉันมีคือหมายเลขไม่ได้ถูกบันทึกทันที แต่หลังจากสร้างหมายเลขที่สองแล้ว นี่หมายความว่าทั้งเซลล์ที่ฉันกำลังบันทึกหรือเซลล์ที่เป็นเป้าหมายไม่มีหมายเลข...ฉันจะบันทึกทันทีที่มีการสร้างตัวเลขได้อย่างไร ขอบคุณสำหรับความช่วยเหลือของคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีจอห์น,
ขออภัยไม่สามารถช่วยคุณในเรื่องนั้นได้ ยินดีต้อนรับสู่การโพสต์คำถามใด ๆ ในฟอรัมของเรา: https://www.extendoffice.com/forum.html. ขอบคุณสำหรับความคิดเห็นของคุณ.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี เป็นไปได้ไหมที่จะใช้สิ่งนี้กับเซลล์มากกว่าหนึ่งเซลล์ ?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี! ขอบคุณสำหรับรหัส แต่ฉันมีคำถาม

มีวิธีแก้ไขโค้ดให้บันทึกค่าถ้าเซลล์เป็นรายวันหรือบางวันซึ่งฉันระบุในคอลัมน์แยกต่างหาก?


ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ลองสิ่งนี้

Dim xVal เป็นสตริง
Dim iVal เป็นจำนวนเต็ม
Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)
Static xCount เป็นจำนวนเต็ม
iVal = Application.WorksheetFunction.Count(Range("F:F"), 1)
xCount = iVal
Application.EnableEvents = เท็จ
ถ้า Target.Address = Range("C2").Address แล้ว
ช่วง("E3").ออฟเซ็ต(xCount, 0).ค่า = ช่วง("C2").ค่า
Range("F3").Offset(xCount, 0).Value = Now
xCount = xCount + 1
อื่น
ถ้า xVal <> Range("C2").Value แล้ว
ช่วง("E3").ออฟเซ็ต(xCount, 0).ค่า = ช่วง("C2").ค่า
Range("F3").Offset(xCount, 0).Value = Now
xCount = xCount + 1
End If
End If
Application.EnableEvents = จริง
ย่อยสิ้นสุด
แผ่นงานย่อยส่วนตัว_SelectionChange(ByVal Target As Range)
xVal = ช่วง ("C2") .Value
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันลองใช้รหัสนี้สำหรับเซลล์ C2 ซึ่งมีค่า DDE ซึ่งเปลี่ยนแปลงทีละวินาที ฉันใช้รหัสต่อไปนี้ แต่ไม่ทำงาน

Dim xVal เป็นสตริง
Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)
Static xCount เป็นจำนวนเต็ม
Application.EnableEvents = เท็จ
ถ้า Target.Address = Range("C2").Address แล้ว
ช่วง ("D2") ออฟเซ็ต (xCount, 0).Value = xVal
xCount = xCount + 1
อื่น
ถ้า xVal <> Range("C2").Value แล้ว
ช่วง ("D2") ออฟเซ็ต (xCount, 0).Value = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = จริง
ย่อยสิ้นสุด
แผ่นงานย่อยส่วนตัว_SelectionChange(ByVal Target As Range)
xVal = ช่วง ("C2") .Value
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วันดี,
คุณใช้ Excel เวอร์ชันใด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มันใช้งานได้เมื่อฉันพิมพ์ข้อมูล มันไม่ทำงานเมื่อฉันสตรีมข้อมูลแบบเรียลไทม์ไปยังเซลล์นี้โดยตรง (=RTD(.....)) ฉันจะทำให้มันทำงานกับ RTD ได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมากสำหรับบทช่วยสอน ฉันชอบที่จะรู้ว่ามีวิธีที่จะทำให้เซลล์ทำงานเหมือนเครื่องคิดเลขปกติได้หรือไม่
กล่าวคือ เซลล์นี้ควรจะสามารถสรุปตัวเลขที่ปรากฏในอีกเซลล์หนึ่งได้ โดยที่ยังคงมองเห็นตัวเลขสะสมล่าสุดได้
อีกเซลล์นี้จะเป็นเซลล์คีย์ในหรือเซลล์ที่ใช้งานอยู่
ตัวอย่าง:
เซลล์ 1: =2*5 คำตอบปรากฏในเซลล์ 2
เซลล์ 1: =3*6.8 คำตอบจะถูกเพิ่มลงในค่าก่อนหน้าที่เกิดจาก (2*5) และยังคงปรากฏในเซลล์ 2
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สูตรด้านบนใช้ไม่ได้กับสูตร สำหรับการป้อนข้อมูลด้วยตนเองเท่านั้น มีวิธีใดในการเปลี่ยนการเข้ารหัสเพื่อให้ใช้ได้กับเซลล์ที่มีสูตรหรือไม่?



Dim xVal เป็นสตริง
'อัพเดทโดย Extendoffice 2018 / 8 / 22
Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)
Static xCount เป็นจำนวนเต็ม
Application.EnableEvents = เท็จ
ถ้า Target.Address = Range("C2").Address แล้ว
ช่วง ("D2") ออฟเซ็ต (xCount, 0).Value = xVal
xCount = xCount + 1
อื่น
ถ้า xVal <> Range("C2").Value แล้ว
ช่วง ("D2") ออฟเซ็ต (xCount, 0).Value = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = จริง
ย่อยสิ้นสุด
แผ่นงานย่อยส่วนตัว_SelectionChange(ByVal Target As Range)
xVal = ช่วง ("C2") .Value
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอให้เป็นวันที่ดี,
โปรดลอง VBA ด้านล่าง



Dim xVal เป็นสตริง

Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)

Static xCount เป็นจำนวนเต็ม

Application.EnableEvents = เท็จ

ถ้า Target.Address = Range("C2").Address แล้ว

ช่วง ("D2") ออฟเซ็ต (xCount, 0).Value = xVal

xCount = xCount + 1

อื่น

ถ้า xVal <> Range("C2").Value แล้ว

ช่วง ("D2") ออฟเซ็ต (xCount, 0).Value = xVal

xCount = xCount + 1

End If

End If

Application.EnableEvents = จริง

ย่อยสิ้นสุด

แผ่นงานย่อยส่วนตัว_SelectionChange(ByVal Target As Range)

xVal = ช่วง ("C2") .Value

ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ใช้ไม่ได้กับสูตร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
โลกนี้ดี แต่ฉันต้องใช้รหัสนี้กับ 2 เซลล์ที่แตกต่างกันโดยบันทึกค่าที่เปลี่ยนแปลงสำหรับแต่ละเซลล์ในคอลัมน์ที่แยกจากกันและสอดคล้องกัน จะแก้ไขโค้ดได้อย่างไร? ขอบคุณ.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี

โปรดลองใช้วิธีการในบทความนี้:

จะจำหรือบันทึกค่าเซลล์ก่อนหน้าของเซลล์ที่เปลี่ยนแปลงใน Excel ได้อย่างไร?

https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เป็นไปได้ไหมที่จะปรับใช้สิ่งนี้และใช้กับ DDE/RTD? ทำงานได้ดีเมื่อเปลี่ยนเซลล์ด้วยตนเอง แต่ไม่ใช่กับ DDE/RTD
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สามารถเปลี่ยนให้ทำงานหลายเซลล์ในแผ่นงานเดียวได้หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี

โปรดลองใช้วิธีการในบทความนี้:

จะจำหรือบันทึกค่าเซลล์ก่อนหน้าของเซลล์ที่เปลี่ยนแปลงใน Excel ได้อย่างไร?

https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี! ฉันลองใช้รหัสนี้เพื่อบันทึกการเปลี่ยนแปลงทุกค่าของเซลล์หนึ่งๆ อย่างไรก็ตาม ฉันสงสัยว่าจะมีใครช่วยฉันด้วยการแก้ไขมันไหม ดังนั้นการเปลี่ยนแปลงค่าจะถูกรวบรวมในแท็บที่แตกต่างกัน และบันทึกทุกครั้งที่ปิดสมุดงาน เนื่องจากการเรียงลำดับของการตั้งค่าใหม่ทุกครั้งที่เปิดเวิร์กบุ๊กโดยไม่บันทึกค่าก่อนหน้า รหัส: Dim xVal As String
'อัพเดทโดย Extendoffice 2018 / 8 / 22
Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)
Static xCount เป็นจำนวนเต็ม
Application.EnableEvents = เท็จ
ถ้า Target.Address = Range("J7").Address แล้ว
ช่วง ("AB2") ออฟเซ็ต (xCount, 0).Value = xVal
xCount = xCount + 1
อื่น
ถ้า xVal <> Range("J7").Value แล้ว
ช่วง ("AB2") ออฟเซ็ต (xCount, 0).Value = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = จริง
ย่อยสิ้นสุด
แผ่นงานย่อยส่วนตัว_SelectionChange(ByVal Target As Range)
xVal = ช่วง ("J7") .Value
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ขอบคุณสำหรับด้านล่าง คำถามด่วน....คุณสามารถรีเซ็ตสิ่งนี้ในบางครั้งเพื่อให้ตามคำขอของคุณ คุณสามารถให้มาโครลบตัวเลขก่อนหน้าทั้งหมดและเริ่มบันทึกตัวเลขอีกครั้งจากเซลล์ D2 ได้หรือไม่ ขณะนี้มีการบันทึกตัวเลข D2, D3, D4, D5, D6 เป็นต้น
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
โหลดเพิ่มเติม
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ