我正面临一个我一直在使用的小块VBA的问题。
我在A列中有值,我只希望粗体值保留在A列中。
我使用的代码是:
Sub CopyBoldText()
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrBelow = 0
Dim c As Range
For Each c In Intersect(Columns("B"), ActiveSheet.UsedRange)
If c.Font.Bold Then c.Offset(, -1).Value = c.Value
Next c
End Sub
我的问题是A列中的值是在复制值并插入A列时前进零的数字,这些前导值将被删除。
我尝试在以下内容之间改变CopyOrigin开关:
xlFormatFromLeftOrBelow = 0
xlFormatFromLeftOrBelow = 1
xlFormatFromRightOrBelow = 0
xlFormatFromRightOrBelow = 1
但每次值仍然没有前导零。
答案 0 :(得分:1)
尝试添加行
Columns("A:A").NumberFormat = "@"
在Selection.Insert
之后。这将使整个列文本的格式成为您不会丢失数字前导零的唯一方法。
答案 1 :(得分:0)
如果这是格式问题,为什么不复制整个列的PasteSpecial
格式。
Columns("B").Copy
Columns("A").PasteSpecial Paste:=xlPasteFormats
答案 2 :(得分:0)
试试这个
Sub CopyBoldText()
Columns("A").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightOrAbove
Columns("B").Copy
Columns("A").PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Dim c As Range
For Each c In Intersect(Columns("B"), ActiveSheet.UsedRange)
If c.Font.Bold Then c.Offset(, -1).Value = c.Value
Next c
End Sub