การย้ายข้อมูลเซลล์ที่เลือกใน excel ทางซ้ายหรือขวาโดยไม่ต้องใช้ cut + paste หรือคัดลอกและวาง ย้ายข้อมูลด้วยปุ่มลูกศรจะดีมาก


0

สวัสดีฉันอยากรู้วิธีเรียกใช้ VBA หรือมาโคร (หรือวิธีที่ง่ายกว่า) เพื่อเปลี่ยนค่าของการเลือกปัจจุบันเท่านั้น (แตกต่างจากเซลล์หนึ่งในหนึ่งแถวเป็นหลายเซลล์และเลือกข้ามแถว, คอลัมน์) ใน excel เป็น หนึ่งคอลัมน์ขวาหรือซ้ายหนึ่งคอลัมน์

กล่าวโดยย่อคือฉันกำลังเตรียมแผ่นพยากรณ์สำหรับการฝึกสถาปัตยกรรม มันทำงานในลักษณะเดียวกับโครงการ Microsoft ที่มีแถวของช่วงเวลาที่แสดงในคอลัมน์รายเดือนจำนวนมาก เมื่อไทม์ไลน์ของโครงการเปลี่ยนไปฉันต้องสามารถเลือกแถวของข้อมูลเซลล์เดียวหรือหลายเซลล์และย้ายข้อมูลที่เลือกไว้โดยคอลัมน์เดียวเท่านั้น มันจะเป็นการดีที่จะลบข้อมูลออกจากตำแหน่งเซลล์ก่อนหน้านี้ด้วย (ตัดและวางข้อมูลในสาระสำคัญเท่านั้น)

  1. ฉันไม่สามารถใช้การคัดลอกและวางได้เนื่องจากเป็นการทำซ้ำข้อมูล
  2. เลือกและลากบนขอบของกล่องขอบด้วยเคอร์เซอร์สี่ดาวใช้สูตรการเชื่อมต่อและการจัดรูปแบบ

ดูรูปภาพที่แนบมา - ลองนึกภาพการจัดสรร 50% สองรายการในเดือน เม.ย. -19 และ พ.ค. -19 จะต้องเริ่มต้นในเดือนกรกฎาคม เพียงแค่ฉันต้องการเลือกเซลล์เหล่านั้นและย้ายข้อมูลเท่านั้น - ราวกับว่าใช้ปุ่มลูกศรขวา (หรือปุ่มลูกศรซ้าย) เพื่อย้ายข้อมูลเช่นเดียวกับ tetris

หวังว่าจะได้ยินคำแนะนำของคุณ
ป้อนคำอธิบายรูปภาพที่นี่


คุณได้ลองแทรกหรือลบเซลล์แล้วขยับซ้ายหรือขวาหรือไม่? ( .Insert Shift:=xlToRightและ.Delete Shift:=xlToLeftใน VBA)?
cybernetic.nomad

ขอบคุณฉันยังใหม่กับ vba และมาโครฉันจะลองและใช้คำแนะนำของคุณ
AustinH

คำตอบ:


0

วางเป็นสิ่งที่พิเศษที่คุณกำลังมองหา? นี่คือลักษณะที่วางแบบดรอปดาวน์ใน Excel 2007:

ป้อนคำอธิบายรูปภาพที่นี่

มันไม่ชัดเจนสำหรับฉันว่าทำไมการตัดและวางแบบง่าย ๆ ไม่เหมาะกับคุณ (อาจเป็นได้ว่าจะมีการไฮไลต์เซลล์ / การจัดรูปแบบ แต่คุณไม่ได้บอกว่าเป็นปัญหาของคุณจริงๆ) ดังนั้นฉันจึงไม่แน่ใจ แก้ปัญหาของคุณ แต่มีตัวเลือกมากมายเพื่อปรับแก้วางของคุณ โปรดทราบว่าหากคุณไม่ต้องการทำซ้ำข้อมูลให้ใช้การตัด ( Ctrl+ X) แทนการคัดลอก ( Ctrl+ C)


0

นี่คือคำตอบแม้ว่าฉันคิดว่ามันจะทำให้คุณเจ็บปวดมากกว่าความสุข การใช้การตัดและวางด้วยctrl+ xและctrl+ vอาจช่วยให้ปวดศีรษะได้มาก

ทำสองโมดูลในสมุดงานของคุณ เพิ่มรหัสด้านล่าง เรียกใช้ module1 เพื่อเปิดใช้งานการสลับคีย์และเรียกใช้ module2 เพื่อปิด ในขณะที่ปุ่มลูกศรขวาและซ้ายของคุณจะเลื่อนข้อมูลของคุณไปทางซ้ายหรือขวาและทำลายข้อมูลในเซลล์เก่า สูตรจะถูกลบออก ใช้กับข้อควรระวัง

ฉันแนะนำให้ทำปุ่มเพื่อเปิดใช้งานโมดูลทั้งสองนี้

Module1

Sub shifter()
    Application.OnKey "{LEFT}", "LShift"
    Application.OnKey "{RIGHT}", "RShift"

End Sub

Function LShift()
    Selection.Offset(0, -1).Value2 = Selection.Value2
    Selection.Value2 = ""
    Selection.Offset(0, -1).Select

End Function

Function RShift()
    Selection.Offset(0, 1).Value2 = Selection.Value2
    Selection.Value2 = ""
    Selection.Offset(0, 1).Select
End Function

Module2

Sub Endshifter()
    Application.OnKey "{LEFT}"
    Application.OnKey "{RIGHT}"

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