-1

我需要你的帮助来自动化一份 MIS 报告。

描述:每天我们将通过下载位于 GL 中的未清项目来循环 MIS。订单项的总数每天都会有所不同。我创建了一个宏,我在其中选择了从第一个项目到最后一个项目的范围(5800 个行项目)。但在第 2 天,它会增加到 6500,因为我只选择了范围,因为 5800..系统显示错误。除了特定的范围选择,我们可以修复 10000 个项目之类的东西吗?或系统应根据交易数量自动选择整个范围。

Range("C5881").Select

4

2 回答 2

0

如果您在下载之前删除工作表中的行,UsedRange() 应该会在下载后返回您要查找的内容。请注意,您不能只删除前几天行的内容,需要删除这些行。如果您只是删除单元格的内容而留下空行,则评论中的链接显示了一种查找“最后一行”的方法。

下面是一些使用 Siddharth 的方法和 UsedRange 的测试代码:

Sub x()
With Sheets("Sheet1")
    Debug.Print .UsedRange.Address
    Debug.Print .UsedRange.Cells.Count
    If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
        lastrow = .Cells.Find(What:="*", _
                      After:=.Range("A1"), _
                      Lookat:=xlPart, _
                      LookIn:=xlFormulas, _
                      SearchOrder:=xlByRows, _
                      SearchDirection:=xlPrevious, _
                      MatchCase:=False).Row
    Else
        lastrow = 1
    End If
    Debug.Print lastrow
    .UsedRange.Select
End With

结束子

请注意,UsedRange() 将计算具有格式的单元格和为空的单元格。将一些单元格添加到 sheet1 并运行代码。删除底部行中单元格的内容,看看结果如何变化。

于 2013-11-15T22:57:20.880 回答
0

我得到了答案

通过使用下面的代码,我能够得到结果......我要感谢一个和所有在线程上回复的人

将 wksSheet 调暗为工作表 将 rng 调暗为范围

With wksSheet
    LastRow = .Range("A1").End(xlDown).Row
    LastCol = .Range("A1").End(xlToRight).Column
    Set rng = .Range("A1", .Cells(LastRow, LastCol))
End With

    LastRow = .Range("A1").End(xlDown).Row  or        LastRow = .Range("A1048576").End(xlUp).Row
于 2013-11-20T04:01:10.327 回答