从WS已经声明和设置的范围select避免运行时错误
我有这个代码,它是工作正常,如果我运行macros而Sheet1被选中或激活。
但是,当其他纸张被选中时,它将失败。 为什么?
我得到一个:
运行时错误:select范围级别的方法失败
当我Set ws = ThisWorkbook.Sheets("Sheet1")
时是否覆盖
Sub test() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") With ws lrow = .Range("A" & .Rows.Count).End(xlUp).Row .Range("A1:M" & lrow).Select End With End Sub
我如何改进代码并避免Runtime Error
?
我错过了什么?
任何帮助将非常感激。
本身。 它包含公式,所以我想保留从公式获得的值的数据格式并将其粘贴为值。 – L42 1分钟前
就像我提到的,你可以避免使用。在大多数情况下select。
这是你正在尝试?
更换
.Range("A1:M" & lrow).Select
同
.Range("A1:M" & lrow).Value = .Range("A1:M" & lrow).Value
或者,也许这个?
Sub test() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") With ws lrow = .Range("A" & .Rows.Count).End(xlUp).Row .Range("A1:M" & lrow).Copy .Range("A1:M" & lrow).PasteSpecial xlPasteValues End With End Sub