网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月25日漏签0天
vba吧 关注:17,058贴子:66,690
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 26回复贴,共2页
  • ,跳到 页  
<<返回vba吧
>0< 加载中...

求助大佬(删除Excel里面的空行)

  • 只看楼主
  • 收藏

  • 回复
  • 小狼狗先生
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub DeleteEmptyRow()
Dim i As Integer
For i = 94 To 2 Step -1
If Cells(i, 1) = "" Then
Sheets("sheet1").Rows(i).Delete
End If
Next i
End Sub
大佬啊,我感觉逻辑语法好像都没问题,为啥总是把第二行以后的数据都删了呢。我只想删除空白行呀


  • 小狼狗先生
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求大佬帮忙,十分钟后再来问一遍


2025-07-25 03:45:24
广告
不感兴趣
开通SVIP免广告
  • 小狼狗先生
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求救


  • 贴吧用户_Q12DaVK
  • 人中龙凤
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我刚试了一下没问题啊


  • 贴吧用户_Q12DaVK
  • 人中龙凤
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不知道代码意思你弄懂了没有,以第1列为准,2到94行若为空,本行删除


  • 贴吧用户_Q12DaVK
  • 人中龙凤
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
而不是其他列


  • 死神也爱苹果
  • 后起之秀
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没图吗


  • 漫步云端雨夜
  • 江湖少侠
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
rows(i& ":" &i).delete
试试,我也新手


2025-07-25 03:39:24
广告
不感兴趣
开通SVIP免广告
  • 小拇指头
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
dim rng as range
然后rng.delete


  • DwcCC
  • 人中龙凤
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你能理解
If Cells(i, 1) = "" Then 这个条件的含义么?
Cells(X,Y)
代表的是 第X行,第Y列的 单元格
比如 Cells(1,1) 相当于A1, Cells(2,2) 相当于B2
你这里If Cells(i, 1) = "" Then
A列 是不是空白 作为判断依据
去检查一下 你的A列 是不是空白的
VBA的程序都是定制的。每个人的表格不同,代码并不通用。
只发代码,不发表格。我说代码没问题,你说运行结果不对。都讲不清楚


  • tmtony
  • 吧主
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最好文件也上传


  • 秦時明月漢時圓
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
说一下我的方法,一种是直接在单元格上删除,一种是通过数组直接得到非空值。
假设a2:an有一列数据,数据中有2个以上空值。
通过数组得到非空值,代码如下:
Sub GetNonnullRow()
Dim arr, brr(), n&, i&, r&
r = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
arr = Range("a2:a" & r)
For i = 1 To UBound(arr)
If arr(i, 1) <> "" Then
n = n + 1
ReDim Preserve brr(1 To n)
brr(n) = arr(i, 1)
End If
Next
[c2].Resize(n) = Application.Transpose(brr)
End Sub
直接在单元格上删除,代码如下:
Sub DeleteEmptyRow()
Dim rng As Range, i&, k&, r&
r = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Do
k = k + 1
Loop Until Cells(k, 1) = ""
Set rng = Cells(k, 1) '获取第一个空值
For i = 2 To r
If Cells(i, 1) = "" Then
Set rng = Union(rng, Cells(i, 1))
End If
Next
rng.Delete Shift:=xlUp
End Sub


  • 一夜飘忽
  • 无名之辈
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub 宏1()
Dim a, c, d, i
For i = 1000 To 1 Step -1
a = Rows(i).Value
For Each c In a
If c = "" Then
d = d + 1
If d = UBound(a, 2) Then
Rows(i).Delete
d = 0
Exit For
End If
Else
Exit For
End If
Next c
Next i
End Sub
i循环是行号,可以视情况写成变量。


  • 凌霄大树
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
用range是不是简单点


2025-07-25 03:33:24
广告
不感兴趣
开通SVIP免广告
  • 煎饼加鸡蛋
  • 仗剑天涯
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你试试在cells前面加上”sheets(“sheet1”).”,估计你激活的是sheets(2)工作表


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 26回复贴,共2页
  • ,跳到 页  
<<返回vba吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示