2014-10-28 2 views
1

В коде ниже я хочу сделать следующее:Формат с VBA

  1. В строке 9 формат высота строки будет +25,5
  2. В строках 10-12 по правому краю и смелыми строк вставляются.

То, что я пробовал, не работает должным образом. Я думал, что могу использовать что-то с «TargetCell», но я не хочу определять целевой диапазон. Я бы хотел, чтобы каждая итерация For делала форматирование. Я делаю это сложным? Любая помощь в этом была бы замечательной!

Sub Program_Population() 
10 Dim ws1 As Worksheet: Set ws1 = Sheets("Calc") 
20 Dim ws2 As Worksheet: Set ws2 = Sheets("COST SHEET") 
     Dim LastRow As Long 
     Dim i As Long 
     Dim rngtocopy As Range 
     Dim rngFinal As Range 
     Dim pwd As String 

30 vStart 
     '****Clear previous entries in the cost sheet for program type**** 
40 ws2.Range("B15:B10000").ClearContents 

50 LastRow = ws1.Cells(ws1.Rows.Count, "B").End(xlUp).Row 

60 Set rngtocopy = ws1.Range("B1", ws1.Cells(LastRow, "C")) 
70   Set rngFinal = ws2.Range("B15", ws2.Cells(LastRow * 4, "B")) 

80 For i = 1 To rngtocopy.Rows.Count 
90 rngFinal((i - 1) * 5 + 1, 1) = rngtocopy(i, 1) & Chr(10) & rngtocopy(i, 2) 
100 rngFinal((i - 1) * 5 + 2, 1) = "Forecast" 
110 rngFinal((i - 1) * 5 + 3, 1) = "Actual" 
120 rngFinal((i - 1) * 5 + 4, 1) = "Comparison" 
130 Next i 
140 vExit 
End Sub 
+0

_does не работает, как expected_. Что это делает, это неверно. Вы не можете назначать значения диапазонам так, как вы. Чтобы получить и установить данные диапазона, вам нужно использовать свойство .Value'. См. [MSDN] (http://msdn.microsoft.com/en-us/library/office/ff195193 (v = office.15) .aspx) – Matt

+0

Код в основном считывает диапазон из другого листа и вставляет его с кодом в строке 9. Код из строки 10,11,12 вставляет связанное описание, затем цикл начинается снова. Я хотел бы сделать форматирование по мере выполнения цикла, а не вручную или определения диапазона. Цикл может выполняться один или несколько раз. – RL001

ответ

1

попробовать это:

132 Rows("9:9").RowHeight = 25.5 'changes row 9's cells' row height to 25.5 
134 Rows("10:12").HorizontalAlignment = xlRight 'changes rows 10-12's alignment to right justify 
136 Rows("10:12").Font.Bold = True 'changes rows 10-12 to bold. 
+2

, пожалуйста, добавьте некоторое объяснение вашему коду, показывая, как он решает вопрос - это поможет другим, кто увидит ваш ответ в будущем –

Смежные вопросы