Vba windows.visible=false,防止使用命名范围
我有一组用户表单,可以写入数据库(便于数据输入)。其中两个用户表单使用combobox rowsource数据库中的命名范围:Vba windows.visible=false,防止使用命名范围,vba,excel,range,hidden,Vba,Excel,Range,Hidden,我有一组用户表单,可以写入数据库(便于数据输入)。其中两个用户表单使用combobox rowsource数据库中的命名范围: Application.Workbooks.Open "path\TestDestination.xlsx" Me.ContactCompany.RowSource = "test.CompanyList" 这工作正常,但会打开数据库文件,即使我关闭屏幕更新(?)。进一步搜索后,似乎application.screenupdating=false正是我要寻找的。我将
Application.Workbooks.Open "path\TestDestination.xlsx"
Me.ContactCompany.RowSource = "test.CompanyList"
这工作正常,但会打开数据库文件,即使我关闭屏幕更新(?)。进一步搜索后,似乎application.screenupdating=false正是我要寻找的。我将这些行更改为以下代码:
Application.Workbooks.Open "path\TestDestination.xlsx"
Me.ContactCompany.RowSource = "test.CompanyList"
Windows("TestDestination.xlsx").Visible = False'(Also tried activewindow.visible = false)
这确实可以隐藏工作簿,但无论出于何种原因,输入工作簿都会导致命名范围(test.CompanyList)不可用,并返回超出范围的错误。我通过广泛搜索找到的唯一解决方案表明,这可能是因为它在文件名中添加了[hidden],因此造成了通信错误(如果我理解正确的话)。为了避免这种情况,我在打开后立即插入了这一行
ActiveWindow.Caption = TestDestination
没有骰子。我很抱歉,如果这是一个明显的解决方案,或者如果我没有很好地解释,我根本不知道VBA,我只是在学习工作任务。如有任何建议,将不胜感激。谢谢。当你说数据库时,我认为是指另一个Excel文件,而不是Access或MySQL之类的东西 以这种方式引用命名范围有效
wrkBk.Names(“MyNamedRange”).referestorange
在本例中,我将数字放在命名范围内,并在源工作簿隐藏时显示一个消息框,给出数字的总和
Sub Test()
Dim wrkBk As Workbook
Set wrkBk = Workbooks.Open("path\TestDestination.xlsx")
Windows(wrkBk.Name).Visible = False
MsgBox WorksheetFunction.Sum(wrkBk.Names("MyNamedRange").RefersToRange)
Windows(wrkBk.Name).Visible = True
End Sub
当你说数据库时,我认为是指另一个Excel文件,而不是Access或MySQL之类的东西 以这种方式引用命名范围有效
wrkBk.Names(“MyNamedRange”).referestorange
在本例中,我将数字放在命名范围内,并在源工作簿隐藏时显示一个消息框,给出数字的总和
Sub Test()
Dim wrkBk As Workbook
Set wrkBk = Workbooks.Open("path\TestDestination.xlsx")
Windows(wrkBk.Name).Visible = False
MsgBox WorksheetFunction.Sum(wrkBk.Names("MyNamedRange").RefersToRange)
Windows(wrkBk.Name).Visible = True
End Sub
感谢您的回复,我不确定msgbox的用途,我不想要任何总和,我想使用单独工作簿上的命名范围作为行源。您假设它是excel文件是正确的,很抱歉造成混淆。msgbox和SUMMS只是一个示例,表明它引用的是命名范围。您可以使用此作为第一个单元格引用范围内的单元格,依此类推:wrkBk.Names(“MyNamedRange”).refrestorange.cells(1)感谢您的回复,我不确定msgbox的用途,我不需要任何总和,我想使用单独工作簿上的命名范围作为行源。您假设它是excel文件是正确的,很抱歉造成混淆。msgbox和SUMMS只是一个示例,表明它引用的是命名范围。您可以使用此作为第一个单元格引用范围内的单元格,依此类推:wrkBk.Names(“MyNamedRange”).refrestorange.cells(1)感谢您的回复,我不确定msgbox的用途,我不需要任何总和,我想使用单独工作簿上的命名范围作为行源。您假设它是excel文件是正确的,很抱歉造成混淆。msgbox和SUMMS只是一个示例,表明它引用的是命名范围。您可以引用范围内的单元格,将其用于第一个单元格,依此类推:wrkBk.Names(“MyNamedRange”).refrestorange.cells(1)