2009-12-01 2 views
1

Мне нужно записать те же данные в два разных диапазона ячеек для приложения VBA, которое я пишу. Я мог бы, конечно, просто пройти дважды и написать данные, но я надеялся сделать это за один проход.Напишите в две ячейки одновременно. Excel vba

Это пример того, что я делаю (много сложности удалено).

Sub WriteData() 
    WriteOutDivision "Division1",10 
    WriteOutDivision "Division1",20 
End Sub 

Private Sub WriteOutDivision(ByVal divisionName, ByVal rowNumber) 
    Dim curSheet As Worksheet 

    Set curSheet = Sheets("Company Scorecard")  

    With curSheet.Cells(rowNumber, 1) 
     .value = divisionName 
     .Font.Bold = True 
     .InsertIndent 1 
    End With 
End Sub 

Есть ли что-то, что я могу сделать, чтобы одновременно писать колонку 1 и колонку 1 и строку 20 одновременно?

ответ

7

Вы можете определить нескончаемый диапазон и изменить пропозиции диапазона. Например:

Dim curSheet As Worksheet 
Dim rngSpecial As Range 

Set curSheet = Sheets("Company Scorecard") 
Set rngSpecial = curSheet.Range("A1,A3") 
rngSpecial.Value = "Whatever" 

Будут писать «Независимо» в A1 и A3.

1

Можете ли вы просто передать массив чисел строк вместо одного rowNumber, тогда в вашей функции просто пропустите каждый элемент в массиве (я не помню, я не программировал в VBA какое-то время)? Затем вы можете распечатать его на столько строк, сколько хотите.

+0

Я думал об этом, я просто надеялся, что в нем будет что-то, что позволит это, вроде как функция Resize позволяет писать по многим строкам. –

+0

Мне нравится идея использования массива чисел строк или, возможно, даже коллекции (так как вам не нужно указывать размер коллекции в коде). –

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