赋值代码:
Sheets("sheet1").[d3].Value.cell(2, 2) = "123"
其中Sheets("sheet1").[d3].Value代表了excel 文件aaa中的一个单元格,里面存的是一个文件路径如:c:\bbb.xls
现在执行程序失败,说超出索引范围??求解决方法。
如何将Sheets("sheet1").[d3].Value转换成对象?我现在确实想使用[d3]中的值
追答Sheets("sheet1").[d3]就是对象,[d3]中的值就是Sheets("sheet1").[d3].Value。
确认一下你的问题:你是要取得[d3]中值所指象的那个对象吗?
如果你的Sheet1中D3这个单元格存放着一个文件路径的字符串:c:\bbb.xls,并且这个文件路径没有问题的话。用laurenceluan所说的方法应该没有问题。
请确认路径中的冒号是英文的半角冒号,以及D3单元格里就是路径c:\bbb.xls,而没有在两边加上引号如"c:\bbb.xls"。如果加上了引号要去掉。(提问题如果有个图片会简化很多沟通问题)
下面的程序可以往bbb.xls中的Sheet1中的B2赋值,仅供参考:
Dim myWK As Workbook
现在就是在打开文件上出错,单元格d3中存放的就是文件bbb的路径,路径不固定。
Workbooks.Open filename:="c:\bbb.xls"
可以使用,但是如果用Workbooks.Open filename:="Sheets("sheet1").[d3].Value"就不对了
Workbooks.Open filename:=Activesheet.[d3].Value
对d3单元格确实是文件路径文本,所以我想先隐藏的方式打开文件,然后再写入。可是现在文件根本打不开,直接使用路径没有问题,但是路径是不固定的啊,所以要存放到单元格里面
追答我给你的这段代码 打不开吗? 你原来的语句 语法有些问题……
尝试一下 这个 打开 并输入的代码 看看能不能实现你的要求 要确保 D3 中路径 是你文件存在的真是路径 我试验了 这个是可以打开的……
可能你需要的是 打开 D3中的文档 输入数据后 再关闭 那么尝试如下代码:
Dim Mwb As Object
Mwb = GetObject(Sheets("sheet1").[d3].Value)
Mwb.Sheets(1).Cells(2, 2) = "123"
Application.Windows(Mwb.Name).Visible = True
Mwb.Close 1
这个是 打开并赋值后再关闭……
我程序里注掉其余代码只有你上面那块还是不行,上面是错误消息,可能是我电脑问题吧。不过还是谢谢你
Mwb.Sheets(1).Cells(2, 2) = "123" 这里出错了?
Mwb.Sheets(“sheet1”).Cells(2, 2) = "123" 哪
没有,只是打开,
Mwb = GetObject(Sheets("sheet1").[d3].Value)
这里就中断了。。。
可能是电脑里面的一些设置吧