ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求大神帮看下怎么缩写~~

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-11-13 14:41 | 显示全部楼层 |阅读模式
大概的意思就是 如果是2并且下面是合计就加16个空白行。如果是3就加15个空白行 。。。。写出来之后 单个可以运行 全部放在一起 就卡死了。。。。卡死了。。。。
Sub t2()
Dim x As Integer
Dim i1 As Integer
Dim i2 As Integer
Dim i3 As Integer
Dim i4 As Integer
Dim i5 As Integer
Dim i6 As Integer
Dim i7 As Integer
Dim i8 As Integer
Dim i9 As Integer
Dim i10 As Integer
Dim i11 As Integer
Dim i12 As Integer
Dim i13 As Integer
Dim i14 As Integer
Dim i15 As Integer
Dim i16 As Integer
Dim i17 As Integer


For x = 1 To 2000
For i1 = 1 To 500 Step 18
For i2 = 2 To 500 Step 18
For i3 = 3 To 500 Step 18
For i4 = 4 To 500 Step 18
For i5 = 5 To 500 Step 18
For i6 = 6 To 500 Step 18
For i7 = 7 To 500 Step 18
For i8 = 8 To 500 Step 18
For i9 = 9 To 500 Step 18
For i10 = 10 To 500 Step 18
For i11 = 11 To 500 Step 18
For i12 = 12 To 500 Step 18
For i13 = 13 To 500 Step 18
For i14 = 14 To 500 Step 18
For i15 = 15 To 500 Step 18
For i16 = 16 To 500 Step 18
For i17 = 17 To 500 Step 18
If Cells(x, 1) = i1 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 17)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i2 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 16)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i3 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 15)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i4 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 14)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i5 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 13)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i6 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 12)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i7 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 11)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i8 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 10)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i9 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 9)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i10 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 8)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i11 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 7)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i12 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 6)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i13 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 5)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i14 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 4)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i15 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 3)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i16 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 2)).Select
Selection.Insert Shift:=xlDown
ElseIf Cells(x, 1) = i17 And Cells(x + 1, 1) = "合计" Then
Rows((x + 1) & ":" & (x + 1)).Select
Selection.Insert Shift:=xlDown


End If
Next i17
Next i16
Next i15
Next i14
Next i13
Next i12
Next i11
Next i10
Next i9
Next i8
Next i7
Next i6
Next i5
Next i4
Next i3
Next i2
Next i1
Next x


End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-13 15:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
全世界的大神快来看看啊

TA的精华主题

TA的得分主题

发表于 2015-11-13 15:08 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-11-13 15:11 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-13 15:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个是附件。我的代码,如果分成19次执行 还是可以得。。。。但是19个放在一起 就会卡死

小小合计.zip

91.1 KB, 下载次数: 7

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-13 15:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
huang1314wei 发表于 2015-11-13 15:08
请上传附件,这代码写的,不敢恭维

已经上传了。我知道写的太繁琐了。但是不知道怎么缩写。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-13 15:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

已经上传了,不过 我的代码应该能看懂吧

TA的精华主题

TA的得分主题

发表于 2015-11-13 15:24 | 显示全部楼层
badjinxin 发表于 2015-11-13 15:14
已经上传了。我知道写的太繁琐了。但是不知道怎么缩写。

你光上传一个附件,也没有描述你要达到的具体目的,谁知道你要干吗?为什么不写清楚你要达到的目的?

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-13 15:29 | 显示全部楼层
huang1314wei 发表于 2015-11-13 15:24
你光上传一个附件,也没有描述你要达到的具体目的,谁知道你要干吗?为什么不写清楚你要达到的目的?

就是,如果CELL(X,1)=1或者19,37等等且cells(x+1,1)="合计"那么就插入17个空白行,如果CELL(X,1)=2,20,38并且下面等于合计 就插入16个空白行,是3就插入15个空白行 以此类推

TA的精华主题

TA的得分主题

发表于 2015-11-13 15:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
badjinxin 发表于 2015-11-13 15:29
就是,如果CELL(X,1)=1或者19,37等等且cells(x+1,1)="合计"那么就插入17个空白行,如果CELL(X,1)=2,20 ...

到底是小计还是合计,我看到你的附件当中,合计只有一个,小计倒不少,能不能认真点?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-15 10:33 , Processed in 0.026098 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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