Написать в две ячейки одновременно Excel VBA - PullRequest
1 голос
/ 01 декабря 2009

Мне нужно записать одни и те же данные в два разных диапазона ячеек для приложения 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

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

Ответы [ 2 ]

7 голосов
/ 01 декабря 2009

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

Dim curSheet As Worksheet
Dim rngSpecial As Range

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

Напишет «Что угодно» в А1 и А3.

1 голос
/ 01 декабря 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...