
将最后得到的字串,赋值成:MyPath = "='" & path & "[" & filename & "]" & sheet & "'!" & Range(ref)Address
然后,可以对目标的公式赋值:
range("A1")Formula = MyPath
最后 这个单元格中的值就是你要的结果 ,如果不想显示出来公式,可以再自我自制一下,只粘贴值。
Range("A1")Copy
Range("A1")PasteSpecial Paste:=xlPasteValues
另外,如果非要 以函数的方式返回一个值,可以借用一个肯定用不到的单元格,比如你的数据最多不超过1000行,那么 你可用后面的任意一个[或直接用最下面的一个,Office2003的最后一行是65536,Office2007的最大行是1048576。]
比如:Range("A65536")Formula=MyPath
GetValue=Range("A65536")Value '这样 可以以函数的形式返回值
'最后可以把这个辅助的单元格删除
Range("65536:65536")Delete
iRows=activesheetusedrangerowscount
iColumns=activesheetusedrangeColumnscount
'如果表格前面的几行或几列可能是空的,需要获得最下面的行数和最右面的列数:
with activesheetusedrange
iEndRow=rowscount+row-1
iEndColumn=Columnscount+column-1
end with
最后显示的2行内容到另表二B3:C100???
如果只是拷贝最后可见的两行:
Sheet1Range("C" & [C100]End(xlUp)Row - 1 & ":D" & [C100]End(xlUp)Row)Copy
Sheet2Range("B2")PasteSpecial Paste:=xlPasteValues
考虑把要读取的文档都打开(如果文档非常多,可以考虑用代码打开,循环读取后再关闭),然后 Application 对象就会包含每一个打开的文档对象也就是 Workbooks 集合对象,它的每一个字对象就对应着一个打开的工作簿,然后按照读取单个文档的方法即可。
不打开工作表取数据:
Sub a()Dim wb As Workbook
Dim str, x
str = "D:\d\123xlsx"
Set wb = GetObject(str) '取得123这个文件
x = wbSheets(1)range("a1:c10000") '取得123文件a1:c10000的值
Sheets(1)Range("b1") = x '把值取出来放到新的工作表
End Sub
Sub aa()
Dim f, x
f = ApplicationGetOpenFilename("EXCEL文件,,", 1, MultiSelect:=True)
For x = 1 To UBound(f)
Dim wb As Workbook
Set wb = WorkbooksOpen(f(x))
wbSheets(1)UsedRangeCopy Workbooks("工作簿1xlsm")Sheets(1)Range("a10000")End(3)Offset(1, 0)
wbClose False
Set wb = Nothing
Next x
MsgBox "文件已处理完成!"
End Sub
Private Sub Form_Load()
Dim a As Object
Dim b As Object
Dim c As Object
Set a = GetObject(, "ExcelApplication")
Set b = aWorkBooksopen("C:\工作簿1xlsx")
aVisible = False
Set c = bworksheets(1)
cCells(1,1)Value = "123" 这个是写入sheet1单元格A1数据,反过来用则是读取了
Dim d
d = cCells(1,1)Value
Msgbox d
' 可以使用大部分VBA代码 *** 作Excel
End Sub
以上就是关于VBA读取已关闭EXCEL表数据全部的内容,包括:VBA读取已关闭EXCEL表数据、如何再VBA里获取当前工作表里数据的行数和列数、EXCEL VBA提取数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)