2017-08-09 28 views
1

這是我目前的執行(這是一個很長的腳本的一小部分):試圖讓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 

此代碼循環通過一系列並找到另一列有一個X值,這是別的東西。但我也試圖將它複製到特定的粗體格式。這個實現「有用」,因爲它運行起來,但是令人困惑的是,它有時只是粗體格式化,通常只是一組粗體條目中的第一個粗體條目。

我不能擁有它只是複製了每一個,因爲在這樣的作品,它也運行緩慢且通常是醜陋的。也許如果我包含一個DoEvents = false它不會那麼糟糕,但依然如此。

+0

什麼'i'?你如何/在哪裏聲明和定義? – BruceWayne

+0

它在代碼的其他地方定義並用於獲取列,我的功能應該是它應該的 – CapnShanty

回答

0

因爲你複製和粘貼其他地方的價值觀,它通常是一個好主意,每個副本後清除剪貼板。這也可能會影響性能(以積極的方式)。

添加以下代碼後立即您PasteSpecial行:

Application.CutCopyMode = False

是否包含板可能破壞任何條件格式規則?