如何快速切换在VBA中正在编辑的工作表/工作簿

时间:2019-06-04 19:32:31

标签: vba

基本上,我希望我的程序打开到另一个工作簿的超链接,并将一系列值复制到我的原始工作簿上。问题是,我不知道如何正确引用工作簿以“粘贴”到

我试图复制许多不同的互联网示例。我尝试使用“设置”和“使用”在它们之间切换,并且尝试在粘贴之前使原始工作簿成为活动工作簿,但没有任何反应。

Private Sub findColumns_button_Click()  'userform code
    Dim index As Integer, hyperlink_A As Variant, Wb As Worksheet, mainWorkbook As Variant
    mainWorkbook = ActiveWorkbook.FullName
    Worksheets("Data").Cells(2, 2) = ResultA_Combo.Value
    index = findIndex(Cells(2, 2).Value)
    hyperlink_A = findHyperlink(index)
    Worksheets("Data").Cells(3, 2) = hyperlink_A
    Workbooks.Open Filename:=hyperlink_A    'opens correctly
    Dim test As Double
    test = Worksheets("Data").Range("S23")
    MsgBox test 'displays correct value from desired workbook
    Workbooks.Activate Filename:=mainWorkbook   'not sure what to do here


End Sub

MsgBox test返回所需的值,但我找不到在原始工作簿中设置等于test的单元格值的方法

1 个答案:

答案 0 :(得分:0)

看看是否有帮助,我已经编辑了您的代码,并且通过比较,希望您能朝正确的方向……有关更多详细信息,请参见代码中的注释:

Private Sub findColumns_button_Click()  'userform code
    Dim index As Integer, hyperlink_A As Variant, Wb As Worksheet, mainWorkbook As Workbook
    Dim wbSrc As Workbook

    Set mainWorkbook = ActiveWorkbook
    With mainWorkbook.Worksheets("Data")
        .Cells(2, 2) = ResultA_Combo.Value
        index = findIndex(.Value)
        hyperlink_A = findHyperlink(index)
        .Cells(3, 2) = hyperlink_A
    End With

    Set wbSrc = Workbooks.Open(Filename:=hyperlink_A)  'Allocate to variable and open at the same time

    Dim test As Double
    test = mainWorkbook.Worksheets("Data").Range("S23")
    MsgBox test 'displays correct value from first workbook

    mainWorkbook.Activate 'as long you fully qualify the ranges, you don't need and should avoid as much as possible to use .Activate & .Select

    Dim test2 As Double
    wbSrc.Worksheets(1).Range("A1") = mainWorkbook.Worksheets("Data").Range("S23") * 2
    test2 = wbSrc.Worksheets(1).Range("A1")

    MsgBox test2 'displays correct value from second workbook

End Sub