Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 642070295

[已解决]代码求助

[复制链接]
发表于 2013-9-17 10:19 | 显示全部楼层    本楼为最佳答案   
本帖最后由 我心飞翔410 于 2013-9-17 10:26 编辑
642070295 发表于 2013-9-17 10:17
大师,我运行了不对呀?你先测试好了再发过来吧,谢谢!

==  wo 在看看  你好 没仔细想想 不好意思 我吧Q列放到数组中这个还是重一开始的 你要是389开始的话下面的单元格赋值就是要加388  因为循环从一开始的

sssssss.rar

96.41 KB, 下载次数: 6

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2013-9-17 11:16 | 显示全部楼层
我心飞翔410 发表于 2013-9-17 10:19
==  wo 在看看  你好 没仔细想想 不好意思 我吧Q列放到数组中这个还是重一开始的 你要是389开始的话下面的 ...

有2个疑问:
1、Range(Cells(a + 388, 2), Cells(a + 388, 23)).NumberFormatLocal = "G/
通用格式"中的NumberFormatLocal="G/通用格式“是啥意思去掉可以吗?
2、For a = LBound(arr) To UBound(arr)中的LBound(arr)可以改为389吗?
谢谢!
回复

使用道具 举报

发表于 2013-9-17 11:24 | 显示全部楼层
本帖最后由 我心飞翔410 于 2013-9-17 11:31 编辑
642070295 发表于 2013-9-17 11:16
有2个疑问:
1、Range(Cells(a + 388, 2), Cells(a + 388, 23)).NumberFormatLocal = "G/通用格式"中的N ...

1个问题是设置对应的这一行2列到38列格式为常规 因为你前面设置格式 %   直接赋值0  那么就是0.00%  你可以试一下
2  这个是把这个区域放到数组中  这样定义的数组都是从1 开始的 你要从389开始的话 就是都加上388
For a = LBound(arr) +388 To UBound(arr)+388    LBound(arr)这个不能改的 要不你可以循环来完成  代码如下
Sub te()
Dim a As Integer
For a = 389 To Cells(Rows.Count, 17).End(xlUp).Row
  If Cells(a, 1) = 0 Then
   Range(Cells(a, 2), Cells(a, 23)).Value = 0
   Range(Cells(a, 2), Cells(a, 23)).NumberFormatLocal = "G/通用格式"
  End If
Next a
End Sub

回复

使用道具 举报

 楼主| 发表于 2013-9-17 11:29 | 显示全部楼层
我心飞翔410 发表于 2013-9-17 11:24
1个问题是设置对应的这一行2列到38列格式为常规 因为你前面设置格式 %   直接赋值0  那么就是0.00%  你可 ...

问题解决了,谢谢!已经点了最佳答案了!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 15:08 , Processed in 0.263101 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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