ขีดจำกัดความยาวของเซลล์ Excel


6

Excel ปฏิเสธที่จะเปิดไฟล์บางไฟล์ที่ฉันสร้างขึ้นโดยทั่วไป ฉันคิดว่าสิ่งที่เกิดขึ้นคือมัน pukes เพราะคอลัมน์ใดคอลัมน์หนึ่งมีสายยาวมาก (มากถึง 1850 ตัวอักษร) แต่สำหรับวัตถุประสงค์ในการแก้ไขปัญหาเมื่อฉันทำให้สายสั้นลง (900 ตัวอักษร) จะเปิดขึ้น

คำถาม # 1: สตริงที่ยาวที่สุดที่ฉันสามารถใส่ในเซลล์ได้คืออะไร ผลลัพธ์ของ google บางรายการบอกว่า 1024 หรือ 7,000ish แต่ฉันพบว่า 1,000 ยาวเกินไป

คำถาม # 2: ฉันลองเขียนไฟล์ของฉันทั้งในรูปแบบ XML และ XLS แต่ทั้งคู่มีปัญหาความยาวสายอักขระเดียวกัน มีรูปแบบที่ Excel จะอ่านซึ่งจะทำให้ฉันพอดีกับสตริงความยาว 1850 หรือไม่


นั่นเป็นเรื่องประหลาดที่ยิ่งใหญ่ #
James Mertz

1,800ish คือขนาดของย่อหน้าที่เรียบง่ายสามย่อหน้า
rlb.usa

1
คุณต้องระบุเวอร์ชันของ excel เนื่องจากนี่เป็นหนึ่งในหลาย ๆ สิ่งที่แตกต่างระหว่างเวอร์ชัน
Jarvin

เป็น MS Excel 2007
rlb.usa

รหัสที่คุณใช้ในการสร้างคืออะไร บางทีปัญหาอยู่ในประเภทไฟล์ที่ไม่ได้ระบุไว้
daneshjai

คำตอบ:


3

ตามที่กล่าวมานี้มีอักขระ 1k ตัวต่อขีด จำกัด เซลล์ใน excel 2003 ซึ่งเพิ่มเป็น 32k อักขระต่อขีด จำกัด เซลล์ใน excel 2007 หากโปรแกรมของคุณเป็นแบบโปรแกรมการสร้าง Excel 2003 (.xls) และไม่ใช่ไฟล์ excel 2007 (.xlsx) จากนั้นอาจทำให้เกิดปัญหาเนื่องจากรูปแบบ. xls ไม่รองรับอักขระเกิน 1k ตัวต่อเซลล์

คุณไม่ควรมีปัญหากับรูปแบบ XML หรือ XLS ไปยัง Excel 2007 โดยตรงเนื่องจากขีด จำกัด ของ excel 2003 ไม่ควรเกี่ยวข้อง แต่ฉันไม่สามารถทดสอบได้เนื่องจากฉันไม่ได้เป็นเจ้าของ Excel 2007 แต่หวังว่าสิ่งนี้จะมี ได้รับประโยชน์โดยไม่คำนึงถึง


ฉันคิดว่าคำตอบของคุณถูกต้อง แต่มันก็ไม่ช่วยฉันและมันก็ยังปฏิเสธ 1,800 << 32,000 ตัวอักษรของฉัน ฉันจะรอและดูว่าใครจะเกิดอะไรขึ้น
rlb.usa

6

แม้แต่ Excel 2003 ก็สามารถจัดการอักขระได้ 32,767 ตัวในเซลล์ได้อย่างง่ายดาย แต่รุ่นก่อน Excel 2007 จะแสดงเพียง 1024 อักขระแรกในเซลล์ ( แหล่งที่มาของ MS )

คุณอาจพบปัญหาที่ทราบแล้วซึ่งตัดทอนสตริงที่ 911 อักขระ ฉันเคยพบสิ่งนี้มาก่อนเมื่อถ่ายโอนข้อมูลผ่านการเชื่อมต่อ ADO

ลิงค์ต่อไปนี้เกี่ยวข้องกับ Excel 2003 แต่ดูเหมือนจะเป็นปัญหาเดียวกันกับที่คุณมี

http://support.microsoft.com/kb/818808/en-us



1

ในกรณีที่คุณได้รับข้อมูลจาก ADO ลองใช้รหัสด้านล่าง มันใช้งานได้สำหรับฉัน

Activecell.value=LEFT(YourRecordset("FieldName"), LEN(YourRecordset("FieldName")))

โดยทั่วไปคุณจะได้รับเนื้อหาทั้งหมดของสนาม แต่ในทางที่แตกต่าง เนื่องจากความยาวของเนื้อหามากกว่า 900 (จากประสบการณ์ของฉัน) คุณต้องใช้วิธีอื่น คุณไม่จำเป็นต้องติดตั้งLEFTฟังก์ชั่น RIGHTฟังก์ชั่นนี้ยังทำงาน


1

ใน Excel 2013 (และฉันถือว่าใน Excel 2007 และใหม่กว่า) ความยาวของสตริงที่แสดงในเซลล์เดียวคือ 1024 อักขระ ฉันค้นพบสิ่งนี้โดยบังเอิญเมื่อฉันเขียนสตริงที่สร้างขึ้นใน VBA ไปยังเซลล์ Excel เดียวซึ่งเป็นเซลล์สุดท้ายในคอลัมน์เพื่อเก็บข้อมูล การแสดงปกติของสตริงที่ยาวในเซลล์ทางด้านขวาถูกยกเลิกหลังจาก 1024 อักขระ อย่างไรก็ตามฟังก์ชั่น len ส่งคืนขนาดที่แท้จริงของสตริงอย่างถูกต้องและคัดลอกสตริง (ซึ่งเป็นรายการที่อยู่อีเมล) และวางลงใน Outlook ให้สตริงที่ถูกต้อง ดูเหมือนว่าสายอักขระที่ยาวกว่าจะพร้อมใช้งานใน Excel 2007 และรุ่นใหม่กว่าจะทำงานได้ดี แต่จะไม่แสดงอย่างสมบูรณ์

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