Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 420|回复: 2

[已解决]没错还是那个小白,带着小白题目来求救

[复制链接]
发表于 2023-8-30 11:19 | 显示全部楼层 |阅读模式
老师们好,我写了2个代码,本意是将非空单元格复制另一个区域,然后就编成了这样,有没有好的办法把表格里的2个宏编成一个啊,附件附上,求老师救命
'当单元格不为空时复制到……
Sub co()
Dim x As Integer
For x = 2 To 75
If Range("k" & x) <> "" Then
Range("i" & x).Copy Range("r" & x)
Range("j" & x).Copy Range("s" & x)
Range("k" & x).Copy Range("t" & x)
End If
Next x
End Sub

删除空的单元格
Sub 宏3()
Dim rg As Range
For x = 2 To 76
If Range("r" & x) = "" Then
   Range("r" & x & ":" & "t" & x).Select
    Selection.Delete Shift:=xlUp
    End If
    Next x
End Sub


最佳答案
2023-8-30 17:35
本帖最后由 zjdh 于 2023-8-30 17:41 编辑

Sub TEST()
    Application.ScreenUpdating = False
    W = Range("I65536").End(3).Row
    Range("I2:K" & W).Copy Range("R2")
    For i = W To 2 Step -1
        If Cells(i, "T") = "" Then Range("R" & i & ":T" & i).Delete
    Next
    Application.ScreenUpdating = True
End Sub

工作簿1.rar

65.23 KB, 下载次数: 2

发表于 2023-8-30 17:35 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2023-8-30 17:41 编辑

Sub TEST()
    Application.ScreenUpdating = False
    W = Range("I65536").End(3).Row
    Range("I2:K" & W).Copy Range("R2")
    For i = W To 2 Step -1
        If Cells(i, "T") = "" Then Range("R" & i & ":T" & i).Delete
    Next
    Application.ScreenUpdating = True
End Sub
回复

使用道具 举报

 楼主| 发表于 2023-8-31 08:35 | 显示全部楼层
zjdh 发表于 2023-8-30 17:35
Sub TEST()
    Application.ScreenUpdating = False
    W = Range("I65536").End(3).Row

谢谢老师,您的帮助使我进步很大,真的非常感谢。请收下我的膝盖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-28 06:43 , Processed in 0.821109 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表