34

我想从其他工作表中获取值。

我在 Excel (sheet2) 中有一些值,例如:

    A  B  C  D
    -  -  -  -  
1 | 2  5  9  12
2 | 5  8  4  5
3 | 3  1  2  6

我对第 4 行中的每一列求和。

我在 sheet2 中使用这些值,但我想在 sheet1 中获得结果。

在 sheet2 中使用我的代码时,我得到了正确的答案,但是当我尝试在不同的工作表中使用它时,我得到与当前工作表单元格而不是 sheet2 对应的值的结果。

我正在使用With Application.WorksheetFunction.

如何将 sheet2 设置为活动工作表?

4

7 回答 7

53

尝试

 ThisWorkbook.Sheets("name of sheet 2").Range("A1")

访问工作表 2 中的范围,与您的代码所在的位置或当前处于活动状态的工作表无关。要使工作表 2 成为活动工作表,请尝试

 ThisWorkbook.Sheets("name of sheet 2").Activate

如果您只需要不同工作表中的一行的总和,则根本不需要使用 VBA。在表 1 中输入这样的公式:

=SUM([Name-Of-Sheet2]!A1:D1)
于 2010-11-10T20:35:00.807 回答
21

那将是(对于你非常具体的例子)

ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value=someval

或者

someVal=ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value

因此,单击F1并阅读有关 Worksheets 集合的信息,其中包含 Worksheet 对象,而 Worksheet 对象又具有 Cells 集合,其中包含 Cell 对象...

于 2010-11-10T20:35:39.440 回答
2
Sub TEST()
Dim value1 As String
Dim value2 As String
value1 = ThisWorkbook.Sheets(1).Range("A1").Value 'value from sheet1
value2 = ThisWorkbook.Sheets(2).Range("A1").Value 'value from sheet2
If value1 = value2 Then ThisWorkbook.Sheets(2).Range("L1").Value = value1 'or 2
End Sub

这将比较两个工作表单元格的值,如果它们匹配,则将值放在 L 列的工作表 2 上。

于 2016-07-16T08:16:07.280 回答
1
SomeVal=ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value

不工作。但是下面的代码只对我有用。

SomeVal = ThisWorkbook.Sheets(2).cells(aRow,aCol).Value
于 2015-05-11T06:33:38.147 回答
0

在需要工作表中的数据之前尝试工作表激活命令:

objWorkbook.WorkSheets(1).Activate
objWorkbook.WorkSheets(2).Activate
于 2017-06-20T13:20:13.533 回答
0

也许您可以使用我正在使用的脚本将某个单元格值从另一张表中检索回特定表。

Sub reviewRow()
Application.ScreenUpdating = False
Results = MsgBox("Do you want to View selected row?", vbYesNo, "")
If Results = vbYes And Range("C10") > 1 Then
i = Range("C10") //this is where i put the row number that i want to retrieve or review that can be changed as needed
Worksheets("Sheet1").Range("C6") = Worksheets("Sheet2").Range("C" & i) //sheet names can be changed as necessary
End if
Application.ScreenUpdating = True
End Sub

您可以使用它制作表格并根据需要对其进行个性化设置。

于 2019-08-23T04:50:27.800 回答
0

通常我使用此代码(到 VBA 宏中)从另一个工作表中的另一个单元格的值中获取一个单元格的值:

Range("Y3") = ActiveWorkbook.Worksheets("Reference").Range("X4")

单元格 Y3 在我称之为“计算”的工作表中 单元格 X4 在我称之为“参考”的工作表中 当活动工作表中的“计算”时,VBA 宏已运行。

于 2020-07-24T20:31:55.957 回答