簡體   English   中英

在第 256 列后使用 xlToLeft 設置范圍失敗

[英]Setting Range Using xlToLeft Fails After 256'th Column

我一直在使用 VBA 從一些原始數據文件中循環和復制數據。對於每次迭代,我一直在使用以下代碼來定義目標范圍:

Set destinationRange = WorksheetRange.Cells(2, Columns.Count).End(xlToLeft).Offset(0, 1)

這在第 256 列之前一直有效。 在此之后,不是將目標范圍設置為第 2 行中的下一個空單元格,而是返回到單元格 (2,2),就好像起始參考單元格 (.Cells(2, Columns.Count)) 在占用范圍內一樣the.End 方法返回到占用范圍的開頭。 但事實並非如此,即使在運行時我已經驗證 Columns.Count 應該等於 16384。 那么,為什么代碼看似使用單元格 (2,256) 作為 .Cells(2, Columns.Count) 的結果? 我還嘗試將一個值添加到超過 256 列的單元格中,以嘗試刪除任何涉及 Columns.Count 占位符值的行為,但這也不起作用。

感謝對此的任何見解。 還值得注意的是,沒有運行時錯誤被觸發,復制的數據只是在到達第 256 列后開始覆蓋第 2 列。

“運行代碼的工作表是 Excel 的當前版本,但源數據文件是 xl2003”。

可能你被隱含的ActiveSheet咬了:

WorksheetRange.Cells(2, Columns.Count).End(xlToLeft).Offset(0, 1)

應該

WorksheetRange.Cells(2, WorksheetRange.Columns.Count).End(xlToLeft).Offset(0, 1)

由於ActiveSheet (xl2003) 只有 256 列, End(xlToLeft)在第 256 列之后返回到第 1 列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM