ฉันสามารถป้อนข้อมูลลงในเซลล์ Excel เป็นสูตรได้ แต่เก็บเฉพาะค่าผลลัพธ์


0

ฉันมีข้อมูลเข้าสู่เซลล์ที่เป็นผลมาจากการเพิ่มพื้นฐานบางอย่าง แทนที่จะทำให้ส่วนที่เป็นเกลียวหลุดไปในหัวของฉันฉันอยากจะพิมพ์ส่วนเติมเข้าไปในเซลล์ แต่ไม่ได้เก็บสูตรไว้

ดังนั้นมีวิธีพิมพ์9+9ลงในเซลล์และมีเนื้อหาของเซลล์เป็น "18" และไม่ใช่ "9 + 9," NOR "= ผลรวม (9 + 9)?"


คุณวิจัยหรือทดลองใช้แล้วจนถึงตอนนี้
CharlieRB

คำตอบ:


1

คุณสามารถใช้ vba ใช้งาน Worksheet_Change เช่นนี้:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo cleanup
Application.EnableEvents = False
If Not Intersect(Range("A:A"), Target) Is Nothing Then
    Target.Value = Me.Evaluate(Target.Value)
End If
Application.EnableEvents = True
Exit Sub

cleanup:
Application.EnableEvents = True
End Sub

ใส่สิ่งนี้ในรหัสแผ่นงานของแผ่นงานที่คุณต้องการ เปลี่ยน Intersect Range ("A: A") เป็นเซลล์ที่คุณต้องการเริ่มทำงาน

ตามที่เป็นอยู่ถ้าผมพิมพ์9+9ใน A1 18มันแทนที่มันด้วย


นี่เป็นสิ่งที่ดีและอาจเป็นคำตอบที่ถูกต้อง ... แต่มันทำงานได้ดีกว่างานนี้โดยเฉพาะควร ;-) และฉันไม่แน่ใจว่าฉันได้รับอนุญาตให้เพิ่มรหัสลงในสเปรดชีตนี้ ... มันคุ้มค่าที่จะรักษาในอนาคต แม้ว่าความรู้
mHurley

1
@mHurley ไม่มีทางทำสิ่งที่คุณขอได้ ฟังก์ชั่นตามธรรมชาติของพวกเขาสามารถส่งกลับค่าไปยังเซลล์จากที่พวกเขาถูกเรียกว่า แต่ไม่แทนที่ค่าในเซลล์เหล่านั้นหรืออื่น ๆ ฉันหวังว่าคุณจะพบคำตอบของคุณ แต่ในความคิดของฉันไม่มีคำตอบโดยตรงกับสิ่งที่คุณต้องการ
Scott Craner

1

คุณสามารถทำได้ (บนมือถือหรือทั้งช่วงบริการ) <COPY>และจากนั้นโดยตรง<PASTE VALUES>; ที่จะเขียนทับสูตรทั้งหมดด้วยผลลัพธ์ของพวกเขา นั่นเป็นขั้นตอนแยกต่างหาก ทำได้ดีที่สุดหลังจากที่คุณป้อน=x+yสูตรทั้งหมดของคุณ

Excel รับรู้ถึงการป้อนข้อมูลบางอย่างเป็นสิ่งที่คุณตั้งใจเช่นถ้าคุณพิมพ์1/2<RET>มันจะป้อน 0.5 ในเซลล์ ที่ใช้งานได้สำหรับแผนกเท่านั้น


นี่เป็นข้อมูลที่ดี แต่เพิ่มงานแทนที่จะลดมัน ;-)
mHurley
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.