同时写入两个单元格excel vba

时间:2009-12-01 17:04:31

标签: excel optimization vba

我需要将相同的数据写入我正在编写的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 个答案:

答案 0 :(得分: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中写下“Whatever”。

答案 1 :(得分:1)

你能不能传递一个行数而不是一个rowNumber,然后在你的函数中循环遍历数组中的每个元素(我不记得了,我还没有在VBA中编程一段时间)?然后,您可以将其打印到任意数量的行。