Vba 函数通过提供路径从工作表中读取值

Vba 函数通过提供路径从工作表中读取值,vba,excel,Vba,Excel,我想用其他工作簿中的值填充某些单元格。为了实现这一点,我编写了一个函数,该函数将使用人名作为参数,这将是要打开并从中读取信息的文件名 为了简化,让我们假设只有一个人 调用函数的工作表位于 C:\Dados\People C:\Dados\People\Projects 我想从中读取的文件位于 C:\Dados\People C:\Dados\People\Projects 这是我到目前为止所用的代码,只需回显存储在第一个工作表上的单元格的值: Public Function TipoPr

我想用其他工作簿中的值填充某些单元格。为了实现这一点,我编写了一个函数,该函数将使用人名作为参数,这将是要打开并从中读取信息的文件名

为了简化,让我们假设只有一个人

调用函数的工作表位于

C:\Dados\People
C:\Dados\People\Projects
我想从中读取的文件位于

C:\Dados\People
C:\Dados\People\Projects
这是我到目前为止所用的代码,只需回显存储在第一个工作表上的单元格的值:

Public Function TipoProjeto(name As String) As String
Dim shAux As Worksheet

shAux = Workbooks.Open(Filename:="C:\Dados\People\Projects\person1.xlsx").Sheets(sheet1)

MsgBox shAux.Range("B2").Value

TipoProjeto = "test"
End Function

我为MsgBox指令设置了断点,但无法通过open指令。我可以缺少什么?

在开始时使用工作簿对象而不是工作表对象。 以下各项将起作用:

Public Function TipoProjeto() As String
Dim location As String
location = "C:\Dados\People\Projects\person1.xlsx"

Dim wkb As Workbook
Set wkb = Workbooks.Open(location)

Dim sht As Worksheet
Set sht = wkb.sheets("Sheet1") 'Use set sht = wkb.sheet1 only if the sheet has been named this in the project explorer

MsgBox sht.Range("B2").Value

TipoProjeto = "test"

End Function

你是从手机打过来的吗?如果是这样,它将不起作用。请尝试Set shAux=Workbooks.OpenFilename:=C:\Dados\People\Projects\person1.xlsx.sheetssheet1尝试使用此->Set shAux作为将来的参考,提供所收到错误的详细信息肯定会有所帮助。我能看到的第一个问题是,您正试图设置一个对象引用,而没有@vityta建议的set关键字。是的,我是@Rory。有没有其他方法可以在手机上实现这一点?