我需要你的帮助来自动化一个MIS报告。
描述:每天我们将通过下载GL中的未清项目来传播MIS。订单项总数不会每天变化。我创建了一个宏,我从第一个项目到最后一个项目(5800行项目)中选择了范围。但是在第2天它会增加到6500,因为我只选择了5800 ..系统显示错误。而不是特定的范围选择我们可以修复一些像10000项目的东西?或系统应根据交易次数自动选择整个范围。
Range("C5881").Select
答案 0 :(得分: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
End Sub
请注意,UsedRange()将计算带格式的单元格和空单元格。将一些单元格添加到sheet1并运行代码。删除底行中单元格的内容,看看结果如何变化。
答案 1 :(得分:0)
我得到了答案
通过使用以下代码,我能够得到结果......我要感谢所有在线程上回应的人
将wksSheet作为工作表 Dim rng as Range
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