设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2637|回复: 12
打印 上一主题 下一主题

做了一个EXCEL宏,请帮助看看,谢谢

[复制链接]
跳转到指定楼层
1#
发表于 2016-5-6 14:45:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
做了一个EXCEL宏,目的是将数据的某一列列的格式设置成"000"三位,请帮助看看,谢谢
但是有一个问题就是数据的行数不固定,同时具体是哪一列需要进行选取,请问如何使宏可以自动判断数据的行数,然后再次进行格式的设置,谢谢

Sub format_text()
'
' format_text Macro
'
'
Columns("C:C").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "=RIGHT(""000""&RC[-1],3)"
    Range("B1").Select
    Selection.AutoFill Destination:=Range("B1:B500")
    Range("B1:B500").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
13#
 楼主| 发表于 2016-5-9 08:18:26 | 只看该作者
ly 发表于 2016-5-7 15:48
在excel中,可以用文本格式来表示,但一定不是数值了

谢谢帮助
12#
发表于 2016-5-7 15:48:58 | 只看该作者
yanwei82123300 发表于 2016-5-7 07:51
谢谢,大家的帮助!但是数据导入到access中还是不准确不是000三位的!在EXCEL中显示是三位,但是excel中显 ...

在excel中,可以用文本格式来表示,但一定不是数值了

  1. Sub FormatRng()
  2. ActiveSheet.Range("B2", Cells(Rows.Count, 2).End(xlUp)).Select
  3.         For Each cell In Selection.Cells
  4.             cell.Value = Format(cell, "'000")
  5.         Next
  6. End Sub
复制代码
11#
发表于 2016-5-7 08:56:43 | 只看该作者
yanwei82123300 发表于 2016-5-7 07:51
谢谢,大家的帮助!但是数据导入到access中还是不准确不是000三位的!在EXCEL中显示是三位,但是excel中显 ...

那个就不是显示格式的了。前面的都是用类似于单元格格式的写法的。应该修改单元格的值才能实现。
10#
 楼主| 发表于 2016-5-7 07:51:50 | 只看该作者
谢谢,大家的帮助!但是数据导入到access中还是不准确不是000三位的!在EXCEL中显示是三位,但是excel中显示还是原来的样子,请大家看看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
发表于 2016-5-7 07:13:21 | 只看该作者
yanwei82123300 发表于 2016-5-6 15:03
请大家看看例子,绿色的部分想设置成“000”三位,谢谢

Sub FormatRng()
ActiveSheet.Range("B2", Cells(Rows.Count, 2).End(xlUp)).NumberFormat = "000"
End Sub

8#
 楼主| 发表于 2016-5-6 16:44:19 | 只看该作者
刚刚是了,死机了,不知什么原因?xx
7#
发表于 2016-5-6 16:02:13 | 只看该作者
  1. Sub getFormat()
  2.     Dim i As Long
  3.     Application.ScreenUpdating = False
  4.     For i = 2 To Sheet1.Range("A1").End(xlDown).Row
  5.         With Sheet1.Range("B" & i)
  6.             .Interior.Color = RGB(0, 192, 0)
  7.             .NumberFormat = "000"
  8.         End With
  9.     Next
  10.     Application.ScreenUpdating = True
  11. End Sub
复制代码
6#
 楼主| 发表于 2016-5-6 15:22:36 | 只看该作者
我修改了一下宏代码,目前不会如何界定行数,还有如何需求某一列进行格式设定,请大家帮助看看谢谢了
Sub format000()
Columns("C:C").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "=RIGHT(""000""&RC[-1],3)"
    Range("C2").Select
End Sub
    Selection.AutoFill Destination:=Range("C2:C131")
    Range("C2:C131").Select
End Sub
5#
 楼主| 发表于 2016-5-6 15:22:17 | 只看该作者
我修改了一下宏代码,目前不会如何界定行数,还有如何需求某一列进行格式设定,请大家帮助看看谢谢了
Sub format000()
Columns("C:C").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "=RIGHT(""000""&RC[-1],3)"
    Range("C2").Select
End Sub
    Selection.AutoFill Destination:=Range("C2:C131")
    Range("C2:C131").Select
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-8 17:20 , Processed in 0.115806 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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