如何在一个“子”功能中跨多张纸执行操作

时间:2019-04-30 19:57:23

标签: excel vba

为此,我想将值插入一个工作簿中的两个单独的工作表中。

为什么不起作用?

Sub TEST()

    Dim result1 As Worksheet
    Dim result2 As Worksheet

    Set result1 = ActiveWorkbook.Sheets("Sheet1")
    Set result2 = ActiveWorkbook.Sheets("Sheet2")

    result1.Range(Cells(1, 1), Cells(5, 5)).Value = "1"

    result2.Range(Cells(1, 1), Cells(5, 5)).Value = "2"


End Sub

我希望这能使第一张纸上A1:E5范围内的值“ 1”,第二张纸上的范围内值“ 2”。我知道:

Range(Cells(1, 1), Cells(5, 5)).Value = "1"

可以,但是我对其余的内容没有100%的信心。

1 个答案:

答案 0 :(得分:0)

替换:

result1.Range(Cells(1, 1), Cells(5, 5)).Value = "1"

具有:

Range(result1.Cells(1, 1), result1.Cells(5, 5)).Value = "1"

(与result2相同)

为什么:

Range()函数在接受的输入类型上非常通用。例如:

  1. 一个字符串
  2. 一组字符串
  3. 一组其他“较小”范围

这是需要谨慎的最后一种形式。如果您不符合“小”范围的要求,Excel会假定您打算使用Activesheet上的单元格。