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

nik*_*iko 7 excel vba excel-vba

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

如果我说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
Run Code Online (Sandbox Code Playgroud)

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

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

aev*_*nko 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
Run Code Online (Sandbox Code Playgroud)


Jea*_*ett 5

您必须设置对要打开的工作簿的引用。然后,您可以通过使用该工作簿的参考来对该工作簿执行任何您想要的操作。

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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

其他人指出,这.Activate对于您的情况可能是多余的。在编辑工作表的单元格之前,您并不严格需要激活工作表。但是,如果这就是您想要做的,那么激活它并没有什么坏处——除了对性能的轻微影响之外,只要您只执行一次或几次,就不应该注意到这一点。但是,如果您多次激活(例如在循环中),则会显着减慢速度,因此应避免激活。

  • 嗯,正如预期的那样,这只是将您之前的结果乘以 100! (2认同)