Excel精英培训网

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

[已解决]求助vba

[复制链接]
发表于 2012-8-16 11:43 | 显示全部楼层 |阅读模式
想把每个表的d2:is2000区域里公式转成数值.太沉重了,
最佳答案
2012-8-16 13:25
hjuy78 发表于 2012-8-16 13:11
运行后有一个问题我的数据前面是零的全没了,录的宏没有问题例,
sub AAA51()
    With Sheets("60").Sel ...

失误了,没看到是每个表,用下面的代码试试吧!
  1. Sub test()    Dim i As Byte
  2.     For i = 1 To Sheets.Count
  3.         With Sheets(i).Range("d2:is2000")
  4.             .NumberFormat = "@"
  5.             .Value = .Value
  6.         End With
  7.     Next i
  8. End Sub
复制代码
发表于 2012-8-16 11:46 | 显示全部楼层
本帖最后由 hwc2ycy 于 2012-8-16 11:49 编辑

选中D2:IS2000,复制,然后点中D2,选择性粘贴,数值,就这么简单。

选大区域麻烦的话,可以用定义名称,这样比较省事。
回复

使用道具 举报

发表于 2012-8-16 11:52 | 显示全部楼层
在数据区域内任意一个单元格中,按下crrl+*,可以全选区域
回复

使用道具 举报

发表于 2012-8-16 11:53 | 显示全部楼层
  1. Sub test()
  2.     Range("d2:is2000") = Range("d2:is2000").Value
  3. End Sub
复制代码
回复

使用道具 举报

发表于 2012-8-16 11:55 | 显示全部楼层
本帖最后由 我不知道呀 于 2012-8-16 11:57 编辑

Sub t2()
Dim sh As Worksheet
For Each sh In Worksheets
sh.Range("d2:is2000") = sh.Range("d2:is2000").Value
Next
End Sub
试试这个吧
回复

使用道具 举报

发表于 2012-8-16 11:55 | 显示全部楼层
录制选择性粘贴的宏,然后自己把对应的区域修改一下,运行即可。
回复

使用道具 举报

 楼主| 发表于 2012-8-16 12:56 | 显示全部楼层
sliang28 发表于 2012-8-16 11:55
录制选择性粘贴的宏,然后自己把对应的区域修改一下,运行即可。

因为表多不方便一个表一个表去点
回复

使用道具 举报

 楼主| 发表于 2012-8-16 13:11 | 显示全部楼层
我不知道呀 发表于 2012-8-16 11:55
Sub t2()
Dim sh As Worksheet
For Each sh In Worksheets

运行后有一个问题我的数据前面是零的全没了,录的宏没有问题例,
sub AAA51()
    With Sheets("60").Select
    Range("A3:IS4202").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B1").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = ""
    Range("B2").Select
     End With
End sub

回复

使用道具 举报

发表于 2012-8-16 13:23 | 显示全部楼层
hjuy78 发表于 2012-8-16 13:11
运行后有一个问题我的数据前面是零的全没了,录的宏没有问题例,
sub AAA51()
    With Sheets("60").Sel ...

请测试!
  1. Sub test()    With Range("d2:is2000")
  2.         .NumberFormat = "@"
  3.         .Value = .Value
  4.     End With
  5. End Sub
复制代码
P.S. 如果还是不行,请上传附件!
回复

使用道具 举报

发表于 2012-8-16 13:25 | 显示全部楼层    本楼为最佳答案   
hjuy78 发表于 2012-8-16 13:11
运行后有一个问题我的数据前面是零的全没了,录的宏没有问题例,
sub AAA51()
    With Sheets("60").Sel ...

失误了,没看到是每个表,用下面的代码试试吧!
  1. Sub test()    Dim i As Byte
  2.     For i = 1 To Sheets.Count
  3.         With Sheets(i).Range("d2:is2000")
  4.             .NumberFormat = "@"
  5.             .Value = .Value
  6.         End With
  7.     Next i
  8. End Sub
复制代码

评分

参与人数 1 +5 收起 理由
周义坤 + 5 恭喜你,任务完成!不过迟了点!哈哈

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 21:29 , Processed in 0.552379 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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