vba - 从特定工作表复制未知范围
问题描述
我正在尝试在 VBA 中进行复制,作为更大宏的一部分,因此它需要在 VBA 中,在特定工作表中的未知范围内。
如果我在那个工作表中,我有这个代码可以工作:
Sub Copy()
Range("O2", Range("O" & Cells(Rows.Count, "A").End(xlUp).Row)).copy
End Sub()
我有以下适用于特定范围的内容:
Sub Test()
Worksheets("Data").Range("O2:O10").Copy
End Sub()
如何使第二个代码不特定。
谢谢,
解决方案
最简单和最肮脏的解决方案是这个:
Range("O2:O" & Cells(Rows.Count, "A").End(xlUp).Row).Copy
或者您可以将最后一行隔离为单独的变量:
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("O2:O" & lastRow).Copy
最后,可以决定将要复制的范围声明为一个单独的变量并使用它,同时声明父工作表:
Public Sub TestMe()
Dim lastRow As Long
Dim ws As Worksheet
Dim rangeToCopy As Range
Set ws = workshetes("Sheet1")
With ws
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Set rangeToCopy = .Range("O2:O" & lastRow)
rangeToCopy.Copy
End With
End Sub
更进一步的是使用专用函数来查找每个工作表的最后一行(此处为 GitHub 存储库):
Function lastRow(wsName As String, Optional columnToCheck As Long = 1) As Long
Dim ws As Worksheet
Set ws = Worksheets(wsName)
lastRow = ws.Cells(ws.Rows.Count, columnToCheck).End(xlUp).Row
End Function
推荐阅读
- file - 在 powershell 中:希望以树状方式获取文件和文件夹 - 输出上次写入时间
- web - 自定义域 => 本地主机
- android - RxJava Single.toCompletable() 似乎以某种方式打破了 Single
- c# - 是否可以在 IHttpModule 中访问 IHttpContext.LogRequest 中的 SessionId
- c - 由于我的字符串格式以及所使用的参数,我的 printf 格式说明符将无法编译
- python - web3@1.0.0-beta.26 使用 Yarn 安装失败
- java - 在 JavaFX 中使用窗格进行文本绑定
- javascript - 数组推送值不是字符串
- vuejs2 - 创建 Vue 应用程序:vue create 不起作用
- php - 将图像标题插入数据库不起作用?