试图让VBA代码复制粗体格式?

这是我目前的实现(这是一个更长的脚本的一小部分):

Dim j As Integer, q As Integer q = 2 For j = 1 To 300 If Sheet2.Cells(j, i).Value = "X" Then Sheet1.Cells(q, 4).Value = Sheet2.Cells(j, 3).Value If Cells(j, 3).Font.Bold = True Then Sheet2.Cells(j, 3).Copy Sheet1.Cells(q, 4).PasteSpecial (xlPasteFormats) End If q = q + 1 End If Next j 

这段代码循环遍历一个范围,并find在另一列有X的值,这是为了别的。 但我想也得到它来复制特别是粗体格式。 这个实现“有效”,因为它运行起来,但是令人困惑的是,它有时只是粗体格式化,通常只是一组粗体条目中的第一个粗体条目。

我不能只是复制每一个,因为虽然这样做,它也运行缓慢,通常是丑陋的。 也许如果我包含一个DoEvents = false它不会那么糟糕,但仍然。

因为您要在其他地方复制和粘贴值,所以在每次复制之后清除剪贴板通常是一个好主意。 这也可能会影响性能(以积极的方式)。

PasteSpecial行之后立即添加以下代码:

Application.CutCopyMode = False

工作表是否包含可能会中断的任何条件格式规则?