我需要你的帮助来自动化一份 MIS 报告。
描述:每天我们将通过下载位于 GL 中的未清项目来循环 MIS。订单项的总数每天都会有所不同。我创建了一个宏,我在其中选择了从第一个项目到最后一个项目的范围(5800 个行项目)。但在第 2 天,它会增加到 6500,因为我只选择了范围,因为 5800..系统显示错误。除了特定的范围选择,我们可以修复 10000 个项目之类的东西吗?或系统应根据交易数量自动选择整个范围。
Range("C5881").Select
如果您在下载之前删除工作表中的行,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 并运行代码。删除底部行中单元格的内容,看看结果如何变化。
我得到了答案
通过使用下面的代码,我能够得到结果......我要感谢一个和所有在线程上回复的人
将 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