首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将范围格式化为7个长的数字,在"0“之前添加

将范围格式化为7个长的数字,在"0“之前添加
EN

Stack Overflow用户
提问于 2017-10-05 04:40:45
回答 2查看 150关注 0票数 1

似乎不能让这个发挥作用。我有将数据从工作簿复制到另一个工作簿的代码。我想要做的是--在复制数据之后,范围被格式化为文本(允许前面的0‘s),格式化为7个字符长--在前面添加额外的零来弥补字符计数(希望这是有意义的)。

例句:如果数字是1234,它将格式化为0001234。

有人能帮我吗?这就是我迄今尝试过的..。

代码语言:javascript
复制
ThisWorkbook.Activate
       Range("B9").Select
       Selection.PasteSpecial Paste:=xlPasteAll



    Range("B9", Range("B8").End(xlDown)).Select
    If Not Selection.HasFormula Then
Selection = Selection.Value
Selection.NumberFormat = "Custom"
Selection.NumberFormat = "0000000000"
End If
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-06 07:39:29

假设您的数据是当前文本,您所需要做的就是更改单元格格式,然后有效地重新输入数据,您可以这样做:

代码语言:javascript
复制
Selection.NumberFormat = "0000000"
Selection.Value = Selection.Value
票数 1
EN

Stack Overflow用户

发布于 2017-10-05 06:41:18

好的,根据您的评论,您可以尝试如下:

代码语言:javascript
复制
Dim helper As Range
With Sheet1
    Set helper = .Range("B8", .Range("B8").End(xlDown)).Offset(, 1)
    'if you choose to offset by 2 columns, using column D instead as helper
    'change [-1] in below formula to [-2]
    helper.FormulaR1C1 = "=TEXT(RC[-1],""0000000"")"
    helper.Copy: .Range("B8").PasteSpecial xlPasteValues
    helper.ClearContents
End With

注意,这将使用下一列C作为助手列。

将其调整到您选择的任何空列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46577960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档