excel - 如果单元格范围已满,则复制
问题描述
如果范围的任何部分有值,我会尝试复制数据,否则什么也不做。
我认为当我设置变量时consulRng
我没有正确执行它并且它不能确定它是否已满,它总是会复制。
Sub BlankLine()
Dim Rng As Range
Dim WorkRng As Range
Dim consulRng As Range
On Error Resume Next
Set WorkRng = Range("A:E")
Set consulRng = Worksheets("Hoja 2").Range("J2:O2")
xLastRow = WorkRng.Rows.Count
Application.ScreenUpdating = False
If IsEmpty(consulRng) Then
GoTo EndSub
Else:
For xRowIndex = xLastRow To 1 Step -1
Set Rng = WorkRng.Range("A" & xRowIndex)
If Rng.Value = "Esto es una prueba" Then
Sheets("Hoja 2").Range("H2:O2").Copy
Rng.Offset(1, 0).Insert Shift:=xlDown
Rng.Offset(1, 0).Paste
End If
Next
End If
Application.CutMode = False
Application.ScreenUpdating = True
EndSub:
End Sub
更新代码:
Sub BlankLine()
Dim Rng As Range
Dim WorkRng As Range
Dim consulRng As Range
On Error Resume Next
Set WorkRng = Range("A:E")
Set consulRng = Worksheets("Hoja 2").Range("J2:O2")
xLastRow = WorkRng.Rows.Count
Application.ScreenUpdating = False
'If Not IsEmpty(consulRng) Then
'If Application.CountA(consulRng) = 0 Then
If Not Application.Count(consulRng) = 0 Then 'Contribution: PEH
For xRowIndex = xLastRow To 1 Step -1
Set Rng = WorkRng.Range("A" & xRowIndex)
If Rng.Value = "Esto es una prueba" Then
Sheets("Hoja 2").Range("H2:O2").Copy
Rng.Offset(1, 0).Insert Shift:=xlDown
Rng.Offset(1, 0).Paste
End If
Next
End If
Application.CutMode = False
Application.ScreenUpdating = True
End Sub
霍加1:
霍亚2:
Hoja2数据完成:
Hoja1数据完成:
解决方案
代替
If Not IsEmpty(consulRng) Then
只是
If Not Application.CountA(consulRng) = 0 Then
推荐阅读
- python - pandas.to_datetime() 的格式
- c - 需要时加载 .c 文件
- c# - 从 API 获取数据到 SSIS 脚本组件输出缓冲区
- ms-access - GetOption() 缺失 – 如何获取 DAO.DBEngine 的 SetOption dbMaxLocksPerFile 的值?
- reactjs - 使用反应组件生命周期方法了解初始状态设置
- ruby-on-rails - 活动资源轨未获取数据
- javascript - ANTD rowSelection 不会检入 UI
- kubernetes - 如何在 Helm 图表模板中获取服务的 NodePort 和外部 IP?
- python - 从另一个数据帧更新熊猫数据帧中的特定值
- python - 如何根据匹配另一个数据集中的唯一值从数据集中删除行?