使用VBA从Excel中的其他工作表获取值

时间:2010-11-10 20:29:08

标签: excel vba excel-vba worksheet-function

你好我是excel的新手,我有一些问题从其他工作表获取值。

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

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

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

  • 我想获得第4行中每列的总和。我设法做到这一点,但我只能在sheet2中使用它。

我正在使用“With Application.WorksheetFunction”,我想更改它以获取sheet2中的值。

您可以帮我解决这个问题,以及如何将sheet2设置为激活表。

我希望我的问题很明确。

谢谢

7 个答案:

答案 0 :(得分:44)

尝试

 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)

答案 1 :(得分:17)

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

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

OR

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

所以得到 F1 点击并阅读有关Worksheets集合的内容,其中包含Worksheet对象,而这些对象又有一个Cells集合,持有Cell对象......

答案 2 :(得分: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上。

答案 3 :(得分:0)

SomeVal = ActiveWorkbook.worksheets(" Sheet2的&#34)。细胞(AROW,ACOL)。价值

没用。但是,以下代码仅适用于我。

SomeVal = ThisWorkbook.Sheets(2).cells(aRow,aCol).Value

答案 4 :(得分:0)

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

objWorkbook.WorkSheets(1).Activate
objWorkbook.WorkSheets(2).Activate

答案 5 :(得分: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

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

答案 6 :(得分:0)

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

Range(“ Y3”)= ActiveWorkbook.Worksheets(“ Reference”)。Range(“ X4”)

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