1
我有一個循環放置在Excel工作表中的每個第10個條目上的粗體字體,但是我想要每20個條目的粗體字體。我該如何解決這個問題?任何幫助是極大的讚賞。VBA:使每20個單元格粗體
這是我的工作代碼:
'insert xxxx9 after xxxx8 if needed
For i = 3 To counter - 1
If Cells(i, 1).Value Mod 10 = 8 Then
' counter = counter + 1
If Cells(i + 1, 1) <> Cells(i, 1) + 1 Then
i = i + 1
Rows(i & ":" & i).Select
Selection.Insert Shift:=xlDown
Cells(i, 1) = Cells(i - 1, 1) + 1
Range("A" & 20).Select
Selection.Font.Bold = True
Cells(i, 2) = "900"
Range("B" & i).Select
Selection.Font.Bold = True
Cells(i, 3) = "chk"
Range("C" & i).Select
Selection.Font.Bold = True
Cells(i, 6) = "1"
Range("F" & i).Select
Selection.Font.Bold = True
Else
i = i + 1
Rows(i & ":" & i).Select
Range("A" & i).Select
Selection.Font.Bold = True
End If
End If
Next
'count number of entries
counter = 2
While (Cells(counter, 1).Value <> "" Or Cells(counter, 1).Value <> Null)
counter = counter + 1
Wend
'insert xxxx9 after xxxx8 if needed
For i = 3 To counter - 1
If Cells(i, 1).Value Mod 10 = 8 Then
' counter = counter + 1
If Cells(i + 1, 1) <> Cells(i, 1) + 1 Then
i = i + 1
Rows(i & ":" & i).Select
Selection.Insert Shift:=xlDown
Cells(i, 1) = Cells(i - 1, 1) + 1
Range("A" & 20).Select
Selection.Font.Bold = True
Cells(i, 2) = "900"
Range("B" & i).Select
Selection.Font.Bold = True
Cells(i, 3) = "chk"
Range("C" & i).Select
Selection.Font.Bold = True
Cells(i, 6) = "1"
Range("F" & i).Select
Selection.Font.Bold = True
Else
i = i + 1
Rows(i & ":" & i).Select
Range("A" & i).Select
Selection.Font.Bold = True
End If
End If
Next
改變'for ... next'迭代的方式,比如'For i = 3 To counter - 1 Step 20'。這將通過消除檢查你是否在正確的行上的必要性來加速日常工作。 – Jeeped
感謝您的幫助。這在某種程度上是有效的,但現在它也停止了對第20項的大膽介入。 –
不確定我完全理解,但它看起來像你正在選擇每10行進行處理 - 也就是說,它看起來像你期望第一列包含連續的數字,所以'如果Cells(i,1).Value Mod 10 = 8'選擇值爲8,18,28等的行。這可以解釋爲什麼@Jeeped的建議導致粗體停止。我認爲你需要更好地解釋你的目標,以獲得良好的幫助。 – vknowles