ฉันมีเซลล์ที่มีเนื้อหาข้อความแบบห่อใน Excel และฉันต้องการจัดรูปแบบเซลล์เพื่อให้ความสูงของมันจะปรับให้พอดีกับเนื้อหาที่สามารถครอบคลุมหลายบรรทัดได้ ฉันจะบรรลุพฤติกรรมนี้ได้อย่างไร
ฉันมีเซลล์ที่มีเนื้อหาข้อความแบบห่อใน Excel และฉันต้องการจัดรูปแบบเซลล์เพื่อให้ความสูงของมันจะปรับให้พอดีกับเนื้อหาที่สามารถครอบคลุมหลายบรรทัดได้ ฉันจะบรรลุพฤติกรรมนี้ได้อย่างไร
คำตอบ:
จากhttp://support.microsoft.com/kb/149663
เมื่อต้องการปรับความสูงของแถวให้พอดีกับข้อความทั้งหมดในเซลล์ทำตามขั้นตอนเหล่านี้:
เลือกแถว
ใน Microsoft Office Excel 2003 และใน Excel รุ่นก่อนหน้าให้ชี้ไปที่แถวบนเมนูรูปแบบแล้วคลิกปรับพอดีอัตโนมัติ
ใน Microsoft Office Excel 2007 คลิกแท็บหน้าแรกคลิกจัดรูปแบบในกลุ่มเซลล์แล้วคลิกความสูงของแถวปรับพอดีอัตโนมัติ
ใช้งานได้เมื่อเลือกแถวทั้งหมด
ลอง
เลือกคอลัมน์ -> คอลัมน์คลิกขวา -> จัดรูปแบบเซลล์ -> แท็บการจัดแนว -> ตัดข้อความ
Wrap Text
และเปิดใหม่อีกครั้ง Excel จะปรับขนาดความสูงของแถวให้พอดีกับแถวที่สูงที่สุด ไม่เหมาะถ้าความสูงของแถวเปลี่ยนแปลงแบบไดนามิก แต่ถ้าคุณจัดการกับข้อความคงที่มันก็ควรจะตกลง
โปรดทราบว่าการป้อนอัตโนมัติจะไม่ทำงานในเซลล์ที่ผสาน คุณต้องทำด้วยตนเอง
ดูคำตอบของ Microsoft นี้:
คุณไม่สามารถใช้คุณสมบัติ AutoFit สำหรับแถวหรือคอลัมน์ที่มีเซลล์ที่ผสานใน Excel
หากไม่ได้ทำโดยอัตโนมัติให้วางเคอร์เซอร์ของคุณเหนือเส้นเล็กระหว่างหมายเลขแถว (เช่น: ระหว่าง 1 ถึง 2) และดับเบิลคลิกการดำเนินการนี้จะปรับขนาดแถว (เหนือเส้นเล็ก ๆ โดยตรงในตัวอย่าง: 1) เพื่อให้มองเห็นทุกสิ่ง (จากมุมมองแนวตั้ง)
คุณรู้จักมาโครไหม ใส่รหัสต่อไปนี้ใน
Application.ActiveCell.WrapText = True
ภายในรูทีนย่อย Worksheet_SelectionChange ของคุณ
โซลูชัน VBA คือการใช้สิ่งต่อไปนี้:
Call Application.ActiveCell.AutoFit
วิธีเดียวที่ฉันจะทำให้มันทำงานตามที่คาดไว้ก็คือการเน้นทั้งแผ่นด้วย CTRL-A ให้คลิกปุ่ม "ตัดข้อความ" ในแถบเครื่องมือจากนั้นเลือกใหม่อีกครั้ง ไม่มีการเปลี่ยนแปลงการตั้งค่าอื่น ๆ แต่ตอนนี้แต่ละแถวมีความสูง "เหมาะสม" สำหรับเนื้อหา
ฉันสร้างรหัส VB ต่อไปนี้เพื่อปรับขนาดแถวส่วนหัวเมื่อเซลล์ภายในช่วง (B2: B1500) เพราะค่าวันที่ที่สูงกว่า 12/28/2014 จะทำให้ส่วนหัวแสดงคำเตือนว่าวันที่เหล่านี้ในแผ่นเวลาจะเข้าสู่ สัปดาห์ที่ 1 ของปี 2015:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an Action when they are changed.
Set KeyCells = Range("B2:B1500")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Change the height of the header row when one of the defined cdlls is changed
Rows("1:1").EntireRow.AutoFit
End If
End Sub