首页 文章

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

提问于
浏览
26

您好我是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设置为激活表 .

我希望我的问题很清楚 .

谢谢

5 回答

  • 16

    尝试

    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)
    
  • 37

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

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

    要么

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

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

  • 0
    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列中 .

  • 1

    SomeVal = ActiveWorkbook.worksheets( “Sheet 2中”) . 细胞(AROW,ACOL) . Value

    不工作 . 但是以下代码仅适用于我 .

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

  • 0

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

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

相关问题