在Excel中复制格式
我正在使用一小块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
但是每次数值依然出现在没有前导零的地方。
尝试添加行
Columns("A:A").NumberFormat = "@"
在Selection.Insert
。 这将使整个列文本的格式,这是唯一的方式,你不会失去数字上的前导零。
如果这是一个格式问题,为什么不复制与整个列PasteSpecial
的格式。
Columns("B").Copy Columns("A").PasteSpecial Paste:=xlPasteFormats
尝试这个
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