如何激活特定工作簿和特定工作表?

时间:2011-08-08 04:38:49

标签: excel vba excel-vba

如何从当前工作簿中激活我的其他工作簿?我有一个当前的工作簿与dumb.xls和其他工作簿名称为Tire.xls.I已使用worksbooks.open filename:= "name of the file"从dumb.xls打开Tire.xls。它开放但问题是我无法使它工作

如果我说cells(2,24).value=24将这些值放在dumb.xls的单元格中,但我希望它能完成一个Tire.xls。

activesheet.cells(2,24).value=24将这些放在Tire.xls上。但是如何使用名称激活工作簿?我需要打开3到4个excel工作簿并执行操作吗?如何激活特定工作簿

我在谷歌上找到了这个代码

     activeworkbook.worksheet("sheetname").activate  ' but not working
     windows("sheetname").activate ' people on google suggested not to use

它没有被激活。我不知道如何使它工作。任何人都可以告诉我如何激活特定工作簿和其他工作簿的特定工作表?

示例:我从dumb.xls工作簿中打开了niko.xls和niko_2.xls作为工作簿,因此共有3本工作簿,我必须激活第二张niko_2.xls工作簿。如何制作它?谁能用这些例子解释我的语法?提前谢谢

6 个答案:

答案 0 :(得分:15)

您不需要激活工作表(实际上,这样做会带来巨大的性能损失)。由于您要为工作表声明一个对象,因此当您调用以“wb”开头的方法时。你正在选择那个对象。例如,您可以在工作簿之间跳转而不激活此处的任何内容:

Sub Test()

Dim wb1 As Excel.Workbook
Set wb1 = Workbooks.Open("C:\Documents and Settings\xxxx\Desktop\test1.xls")
Dim wb2 As Excel.Workbook
Set wb2 = Workbooks.Open("C:\Documents and Settings\xxxx\Desktop\test2.xls")

wb1.Sheets("Sheet1").Cells(1, 1).Value = 24
wb2.Sheets("Sheet1").Cells(1, 1).Value = 24
wb1.Sheets("Sheet1").Cells(2, 1).Value = 54

End Sub

答案 1 :(得分:4)

您必须设置对正在打开的工作簿的引用。然后,您可以使用其参考资料,对该工作簿执行任何操作。

Dim wkb As Workbook
Set wkb = Workbooks.Open("Tire.xls") ' open workbook and set reference!

wkb.Sheets("Sheet1").Activate
wkb.Sheets("Sheet1").Cells(2, 1).Value = 123

甚至可以设置对工作表的引用,这将使以后的生活更轻松:

Dim wkb As Workbook
Dim sht As Worksheet

Set wkb = Workbooks.Open("Tire.xls")
Set sht = wkb.Sheets("Sheet2")

sht.Activate
sht.Cells(2, 1) = 123

其他人指出.Activate在你的情况下可能是多余的。在编辑单元格之前,您不需要激活工作表。但是,如果这就是你想要做的事情,那么激活并没有什么害处 - 除了对性能的轻微打击,只要你只做一次或几次就不应该注意到。但是,如果您多次激活,例如在循环中,它会显着降低速度,因此应避免激活。

答案 2 :(得分:0)

Dim Wb As Excel.Workbook
Set Wb = Workbooks.Open(file_path)
Wb.Sheets("Sheet1").Cells(2,24).Value = 24
Wb.Close

要知道要在Wb.Sheets("sheetname")中引用的工作表名称,您可以使用以下内容:

Dim sht as Worksheet    
For Each sht In tempWB.Sheets
    Debug.Print sht.Name
Next sht

答案 3 :(得分:0)

对我有用的代码是:

ThisWorkbook.Sheets("sheetName").Activate

答案 4 :(得分:0)

试试这个

Windows("name.xls").Activate

答案 5 :(得分:0)

你可以试试这个。

Workbooks("Tire.xls").Activate

ThisWorkbook.Sheets("Sheet1").Select
Cells(2,24).value=24