首页 > 解决方案 > 如何在一个“子”功能中跨多个工作表执行操作

问题描述

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

为什么这不起作用?

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% 相信其余的。

标签: excelvba

解决方案


代替:

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 上的单元格。


推荐阅读