Excel 2003 and earlier spreadsheets (XLS file extension) has a max of 65,536 rows and 256 columns. With Excel 2007 and 2010 you now have the metro file format (XLSX, XLSM, etc.) which is capable of handling 1,048,576 rows and 16,384 columns of data. This error appears when you try to copy or move a metro image file sheet to a non-metro (XLS) sheet. Basically you’re trying to fit a much larger page into a small book and still expect the sizes to be equal. Well, Excel doesn’t like that. In fact, it says “Uh, no” when you try to do this with a spreadsheet. That’s all well and good. But what about when you get this error running VBA code that used to work without a problem in Excel 2003?
To answer this question you might want to take a look at your code. If you use a line of code with the .Move method this may well be your problem and here is why: if you are creating a separate workbook on the fly during your code operation, maybe for concatenating or manipulating data, and then later attempting to move a sheet from the newly created workbook into the legacy 2003 and earlier XLS file from which you are running the code, then you’re going to get this error. Why? When you run the code from Excel 2003 or earlier, any new workbooks created while running your code are also of the legacy format. But when you run the same macro in Excel 2007 or 2010 from the XLS file, you are creating a new XLSX metro workbook type and then telling Excel to stuff the larger page into the smaller one by issuing the move or copy command.
Fine, so how do we work around this situation? There are a couple of ways. First, you can open the XLS file that contains the macro and click File > Save As before you run the macro. Save the file as an XLSM file type (metro file with a macro). Then when running the macro, you are working two equally–sized workbooks. You can then do another “Save As” to save the file back to the XLS legacy file format. The only drawback here is if you exceed the allowable rows and/or columns for legacy files.
Another workaround would be to use a copy and paste instead of a move or copy to copy the data that you need and paste that data into the XLS spreadsheet. Of course there are a couple of caviats with this solution. First, if you’re copying more than 65,536 rows of data or more than 256 columns of information then you won’t be able to paste it into the XLS file. You would get the same error message. Second, the code to copy and paste only the data you need is more involved than a one-line ‘Sheets.Move’ statement.
Hopefully, this will shed some light on why you might be encountering this error in VBA code. Let me know if you have any questions!
Excel 2003 และก่อนหน้านี้สเปรดชีต (นามสกุลไฟล์ XLS) มีสูงสุด 65,536 แถวและ 256 คอลัมน์ กับ Excel 2007 และ 2010 ขณะนี้คุณมีรูปแบบไฟล์รถไฟใต้ดิน (XLSX, xlsm ฯลฯ ) ซึ่งเป็นความสามารถในการจัดการ 1,048,576 แถวและ 16,384 คอลัมน์ของข้อมูล ข้อผิดพลาดนี้จะปรากฏขึ้นเมื่อคุณพยายามที่จะคัดลอกหรือย้ายแผ่นไฟล์ภาพรถไฟใต้ดินที่ไม่ใช่รถไฟใต้ดิน (xls) แผ่น โดยทั่วไปคุณกำลังพยายามที่จะพอดีกับหน้ามีขนาดใหญ่มากเป็นหนังสือขนาดเล็กและยังคงคาดหวังขนาดให้เท่ากับ ดี Excel ไม่ชอบที่ ในความเป็นจริงมันพูดว่า "เอ่อไม่มี" เมื่อคุณพยายามที่จะทำเช่นนี้กับสเปรดชีต นั่นคือทั้งหมดที่ดีและดี แต่สิ่งที่เกี่ยวกับเมื่อคุณได้รับข้อผิดพลาดนี้ใช้รหัส VBA ที่ใช้ในการทำงานได้โดยไม่มีปัญหาใน Excel 2003?
เพื่อตอบคำถามนี้คุณอาจต้องการที่จะดูที่รหัสของคุณ ถ้าคุณใช้บรรทัดของรหัสด้วยวิธี .Move อย่างนี้อาจจะเป็นปัญหาของคุณและนี่คือเหตุผล: ถ้าคุณกำลังสร้างสมุดงานแยกต่างหากในการบินในระหว่างการดำเนินรหัสของคุณอาจจะเชื่อมโยงหรือจัดการกับข้อมูลและจากนั้นก็พยายามที่จะ ย้ายจากแผ่นสมุดงานที่สร้างขึ้นใหม่ให้เป็นมรดก 2003 และไฟล์ XLS ก่อนหน้านี้จากการที่คุณจะใช้รหัสแล้วคุณกำลังจะได้รับข้อผิดพลาดนี้ ทำไม? เมื่อคุณเรียกใช้รหัสจาก Excel 2003 หรือก่อนหน้านี้สมุดงานใหม่ที่สร้างขึ้นในขณะที่ใช้รหัสของคุณนอกจากนี้ยังมีรูปแบบเดิม แต่เมื่อคุณเรียกใช้แมโครเดียวกันใน Excel 2007 หรือ 2010 จากไฟล์ XLS คุณกำลังสร้างใหม่ประเภท XLSX สมุดงานรถไฟใต้ดินแล้วบอก Excel เพื่อสิ่งที่หน้าขนาดใหญ่เข้าไปในที่มีขนาดเล็กหนึ่งโดยการออกย้ายหรือคัดลอกคำสั่ง.
ดีดังนั้น ทำอย่างไรเราจะหลีกเลี่ยงสถานการณ์เช่นนี้? มีสองวิธีคือ ครั้งแรกที่คุณสามารถเปิดไฟล์ XLS ที่ประกอบด้วยแมโครและคลิกไฟล์> บันทึกเป็นก่อนที่คุณจะเรียกใช้แมโคร บันทึกแฟ้มเป็นชนิดไฟล์ xlsm (ไฟล์รถไฟใต้ดินที่มีแมโคร) จากนั้นเมื่อเรียกใช้แมโครที่คุณกำลังทำงานสมุดสองอย่างเท่าเทียมกันขนาด จากนั้นคุณสามารถทำได้อีก "Save As" เพื่อบันทึกแฟ้มกลับไปยังรูปแบบไฟล์เดิม XLS ข้อเสียเปรียบเท่านั้นนี่คือถ้าคุณเกินแถวอนุญาตและ / หรือคอลัมน์สำหรับไฟล์เดิม.
วิธีแก้ปัญหาอีกก็จะไปใช้คัดลอกและวางแทนการย้ายหรือคัดลอกเพื่อคัดลอกข้อมูลที่คุณต้องการและวางข้อมูลที่เป็นสเปรดชีท XLS . แน่นอนมีคู่ของ caviats กับการแก้ปัญหานี้ ขั้นแรกถ้าคุณคัดลอกมากกว่า 65,536 แถวของข้อมูลหรือมากกว่า 256 คอลัมน์ของข้อมูลแล้วคุณจะไม่สามารถที่จะวางลงในไฟล์ XLS คุณจะได้รับข้อผิดพลาดเดียวกัน ประการที่สองรหัสเพื่อคัดลอกและวางเฉพาะข้อมูลที่คุณต้องมีส่วนร่วมมากขึ้นกว่าเส้นหนึ่ง 'Sheets.Move' คำสั่ง.
หวังว่านี้จะหลั่งน้ำตาแสงบางอย่างเกี่ยวกับเหตุผลที่คุณอาจจะพบข้อผิดพลาดนี้ในโค้ด VBA ให้ฉันรู้ว่าถ้าคุณมีคำถามใด ๆ !
การแปล กรุณารอสักครู่..

สเปรดชีต ( . xls Excel 2003 และก่อนหน้านี้นามสกุลไฟล์ ) ได้สูงสุด 65 , 536 256 ของแถวและคอลัมน์ กับ Excel 2007 และ 2010 ขณะนี้คุณมีเมโทรรูปแบบไฟล์ ( เปิดไฟล์ xlsm , ฯลฯ ) ซึ่งมีความสามารถในการจัดการ 1048576 แถวและ 16384 คอลัมน์ของข้อมูล ข้อผิดพลาดนี้จะปรากฏขึ้นเมื่อคุณพยายามที่จะคัดลอก หรือย้ายไฟล์ภาพต้องไม่แผ่นเมโทรเมโทร ( xls ) แผ่น โดยทั่วไปคุณกำลังพยายามเพื่อให้พอดีกับหน้า ขนาดใหญ่มาก เป็นหนังสือขนาดเล็ก และยังคาดหวังว่าขนาดจะเท่ากับ ดี , Excel ไม่ได้แบบนั้น ในความเป็นจริง , มันบอกว่า " ไม่ " เมื่อคุณพยายามที่จะทำเช่นนี้กับสเปรดชีต . นั่นคือทั้งหมดที่ดีและดี แต่สิ่งที่เกี่ยวกับเมื่อคุณได้รับข้อผิดพลาดนี้ใช้โค้ด VBA ที่ใช้งานมีปัญหาใน Excel 2003ที่จะตอบคำถามนี้คุณอาจต้องการที่จะดูที่รหัสของคุณ ถ้าคุณใช้บรรทัดของรหัส กับ ย้าย วิธีนี้อาจเป็นปัญหาของคุณและนี่คือเหตุผล : ถ้าคุณสร้างสมุดงานที่แยกต่างหากในการบินในระหว่างการดำเนินงานรหัสของคุณอาจจะเชื่อมโยงหรือจัดการข้อมูล และจากนั้นก็พยายามย้ายแผ่นงานจากสมุดงานที่สร้างขึ้นใหม่ให้เป็นมรดก 2003 แล้วก่อนหน้านี้ ไฟล์ XLS จากที่คุณใช้รหัสแล้วคุณจะได้รับข้อผิดพลาดนี้ ทำไม ? เมื่อคุณเรียกใช้รหัสจาก Excel 2003 หรือก่อนหน้า สมุดงานที่สร้างขึ้นใหม่ใด ๆในขณะที่ใช้รหัสของคุณยังมีมรดกในรูปแบบ แต่เมื่อคุณเรียกใช้แมโครเดียวกันใน Excel 2007 หรือ 2010 จากไฟล์ XLS , คุณจะสร้างสมุดงานใหม่เปิดไฟล์เมโทรชนิดและบอก Excel เพื่อสิ่งที่ใหญ่กว่าหน้าลงในมีขนาดเล็ก โดยการออกย้ายหรือคัดลอกคำสั่งดี แล้วเราจะแก้ไขสถานการณ์นี้ ? มีอยู่สองสามวิธี ก่อนที่คุณจะสามารถเปิดแฟ้ม xls ที่ประกอบด้วยแมโครแล้วคลิกที่แฟ้ม > บันทึกเป็นก่อนที่คุณเรียกใช้แมโคร บันทึกแฟ้มเป็นแฟ้มประเภท xlsm ( เมโทรไฟล์แมโคร ) แล้วเมื่อรันแมโคร คุณจะทำงาน สอง เท่า ๆ กัน – ขนาดสมุดงาน จากนั้นคุณสามารถทำอีก " บันทึก " เพื่อบันทึกไฟล์กลับมรดก xls ไฟล์ ข้อเสียเปรียบเพียงที่นี่คือถ้าคุณเกินอนุญาตคอลัมน์แถวและ / หรือไฟล์เดิมวิธีแก้ปัญหาอื่นจะใช้คัดลอกและวางแทนการย้ายหรือคัดลอกเพื่อคัดลอกข้อมูลที่คุณต้องการวางและข้อมูลในไฟล์ XLS สเปรดชีต แน่นอนมีคู่ของ caviats ด้วยวิธีนี้ แรก , ถ้าคุณกำลังคัดลอกมากกว่า 65536 แถวของข้อมูลหรือมากกว่า 256 คอลัมน์ของข้อมูลแล้วคุณจะไม่สามารถวางมันลงใน xls ไฟล์ คุณจะได้รับข้อความแสดงข้อผิดพลาดเดียวกัน ประการที่สอง รหัสคัดลอกเฉพาะข้อมูลที่คุณต้องการจะเกี่ยวข้องมากกว่าแผ่นหนึ่งบรรทัด " ย้าย " ข้อความหวังว่านี้จะหลั่งไฟบางเหตุผลที่คุณอาจพบข้อผิดพลาดนี้ในโค้ด VBA . แจ้งให้เราทราบหากคุณมีคำถามใด ๆ !
การแปล กรุณารอสักครู่..
