excel - 查找列中包含内容的最后一个单元格 -> 为什么我的代码版本出错?
问题描述
我想在特定列中找到包含信息的最后一个单元格,并在另一个线程中找到了下面列出的解决方案。但是我试图在没有将“ws 定义为工作表”的情况下做到这一点。如果我这样做,编译器将不接受 .cells() 中的“.Rows”。为什么?
附加问题:
- 在第一个版本中,“Set”到底做了什么?为什么我需要这个?
在线程中找到的代码:
Sub testprint_UtilAnal()
Dim ws As Worksheet
Dim xrowrange As Range
Dim xrowprint As Long
Set ws = Sheets("Database_UtilAnal")
With ws
Set xrowrange = .Cells(.Rows.Count, "B").End(xlUp)
Set xrowprint = xrowrange.Rows
End With
End Sub
我的代码:
Sub testprint_UtilAnal_Alt()
Dim xrowrange As Range
Dim xrowprint As Long
xrowrange = Sheets("Database_UtilAnal").Cells(.Rows.Count, "B").End(xlUp)
xrowprint = xrowrange.Rows
End Sub
解决方案
列中的最后一个单元格/行
就像您将Set用于工作簿和工作表一样,您也必须将其用于其他对象,例如范围。
如果您需要“ B ”列中的最后一个单元格(对象) ,您可以使用:
Sub testprint_UtilAnal()
Dim xRowRange As Range
With Sheets("Database_UtilAnal")
Set xRowRange = .Cells(.Rows.Count, "B").End(xlUp)
End With
Debug.Print xRowRange.Address
Set xRowRange = Nothing
End Sub
如果你只需要最后一行(数字),你可以使用这个:
Sub testprint_UtilAnal()
Dim xRowPrint As Long
With Sheets("Database_UtilAnal")
xRowPrint = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
Debug.Print xRowPrint
End Sub
以下两个版本演示了如何通过使用另一个来获得一个:
Sub testprint_UtilAnal()
Dim xRowPrint As Long
Dim xRowRange As Range
With Sheets("Database_UtilAnal")
Set xRowRange = .Cells(.Rows.Count, "B").End(xlUp)
xRowPrint = xRowRange.Row
End With
Debug.Print xRowRange.Address
Debug.Print xRowPrint
Set xRowRange = Nothing
End Sub
Sub testprint_UtilAnal()
Dim xRowPrint As Long
Dim xRowRange As Range
With Sheets("Database_UtilAnal")
xRowPrint = .Cells(.Rows.Count, "B").End(xlUp).Row
Set xRowRange = .Cells(xRowPrint, "B")
End With
Debug.Print xRowPrint
Debug.Print xRowRange.Address
Set xRowRange = Nothing
End Sub
推荐阅读
- php - 删除 Woocommerce 结帐页面上的字段
- scala - Spark Dataframe Scala:通过某些条件添加新列
- amazon-web-services - AWS EBS 优化实例负载测试仅显示实例吞吐量
- python - 基于 for i in range 语句生成唯一名称元素列表
- flyte - 如何在不指定 sha 的情况下使用 flyte api 获取启动计划?
- ios - 如何使用 onTapGesture 更改视图的偏移量?
- react-native - 我不能将 SSV 与 expo-ads-admob 一起使用
- c++ - 如何向我的班级提供有关其环境的一些信息?
- javascript - JS将32bit png图片转换为24bit
- c++ - 如何在 C++ 中将文本文件读入二维数组?