首页 > 解决方案 > UsedRange - 无法消除尾随空白行

问题描述

接受 VBA 和非 VBA 答案。

问题

我正在尝试使用 .csv 将工作表保存为 .csv ThisWorkbook.SaveAs Filename:=strFilePath, FileFormat:=xlCSV,但由于其中UsedRange包含一个尾随空白行,因此我在 .csv 中得到了不需要的逗号行。

我之前在代码中所做的事情

rngAllDate.SpecialCells(xlCellTypeVisible).Copy ThisWorkbook.Worksheets(1).Cells(1, 1)

如果您尝试重新创建问题,这可能会有所帮助。

我试过的


With ThisWorkbook.Worksheets(1)
    .UsedRange 'I'm told this recomputes the UsedRange
    MsgBox .UsedRange.Address

    Dim rngColumnsToDeleteAndClear As Range
    Set rngColumnsToDeleteAndClear = .Range(.Cells(1, WorksheetFunction.CountA(.Rows(1)) + 1), .Cells(1, .Columns.Count))
    MsgBox rngColumnsToDeleteAndClear.Address
    rngColumnsToDeleteAndClear.EntireColumn.Clear
    rngColumnsToDeleteAndClear.EntireColumn.Delete

    Dim rngRowsToDeleteAndClear As Range
    Set rngRowsToDeleteAndClear = .Range(.Cells(WorksheetFunction.CountA(.Columns(1)) + 1, 1), .Cells(.Rows.Count, 1))
    MsgBox rngRowsToDeleteAndClear.Address
    rngRowsToDeleteAndClear.EntireRow.Clear
    rngRowsToDeleteAndClear.EntireRow.Delete

    .UsedRange
    MsgBox .UsedRange.Address
End With

我从上面的代码块中得到以下 Msgbox 结果:

  1. $A$1:$N$11
  2. $O$1:$XFD$1
  3. 11 澳元:1048576 澳元
  4. $A$1:$N$11

我期望上述代码块的以下 Msgbox 结果:

  1. $A$1:$N$11
  2. $O$1:$XFD$1
  3. 11 澳元:1048576 澳元
  4. $A$1:$N$10

我还能尝试什么?

标签: excelvba

解决方案


我最近在电子表格上遇到了 UsedRange 的问题,我无法删除/清除单元格并重置 UsedRange。我找到的解决方法是选择所有未使用的行/列,更改它们的大小,现在删除单元格,保存电子表格,然后重置 UsedRange ...也许这会对您有所帮助?


推荐阅读