ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1020|回复: 4

新手求解,判断和循环语句的结合

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-11-24 22:39 来自手机 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我本来想做的功能是
首先定义了5个函数
接着x做为单元格的序号
当a"x"单元格含有深圳或西安时,
a"x",b"x",c"x"单元格复制到zb,xm,drbc这三个变量上
当a1单元格和c1单元格为空值时
zb,xm,drbc这三个变量复制到a"x",b"x",c"x"上
当a1单元格为空且c1单元格不为空时
结束循环
并将该行及该行以下14行内的内容删除。
但一执行就死机,我也不晓得到底哪出问题,能帮忙看看么
IMG_20171124_221833.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-24 22:41 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
图好像不是特别清晰,单位的电脑有限制,无法上外网且无法传输数据,我晚上回去手打一份发上来

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-24 22:44 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看下这个照片能看清不
2017-11-24_22.43.45.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-26 22:14 来自手机 | 显示全部楼层
本帖最后由 thxjob 于 2017-11-27 15:01 编辑

前两天有点忙
刚手机打出来的
sub 填充()
dim x as integer,n as integer,zb as string,xm as string,drbc as string
x=1
n=1
do while n=1
select case n=1
case(range("a"&x&"")like"深圳*"or range("a"&x&"")like"西安*")=1
zb=range("a"&x&"")
xm=range("b"&x&"")
drbc=range("c"&x&"")
x=x+1
case(range("a"&x&"")=""and range("c"&x&"")="")=1
range("a"&x&"")=zb
range("b"&x&"")=xm
range("c"&x&"")=drbc
x=x+1
case(range("a"&x&"")=""and range("c"&x&""<>"")="1"
n=n+1
end select
loop
end sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-27 21:54 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
已解决,但没明白这个代码的意思!()
班表填充()

Sub a()
Sheets(1).Cells.Copy Sheets(2).[a1]
With Sheets(2)
.Rows("1:114").Delete
er = .Cells.Find("每页行数").Row
For i = 2 To er
If .Cells(i, 1) <> "" Then
arr = Split(.Cells(i, 1), ",")
.Cells(i, 1) = arr(0)
If UBound(arr) > 0 Then
.Cells(i, 2) = arr(1)
End If
Else
For j = 1 To 3
.Cells(i, j) = .Cells(i - 1, j)
Next
End If
Next
.Rows(er).Resize(10000).Delete
For i = er To 2 Step -1
If .Cells(i, 1) = "姓名" Then
.Rows(i).Delete
End If
Next
End With
End Sub

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-26 11:28 , Processed in 0.050210 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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