求用 VBA 编写 获取未打开的 预告.xls指定单元格的数值.

也许很难吧,不然为什么网上找不到呢?
问题: 在不打开某个工作表时,求 j = 未打开工作表的某个单格的数据。

简单不正确的编写方式,意在求方便纠正错误:

h = Trim(Replace(Sheets("[D:\预告.xls].sheet1").Cells(i, 6).Value, ",", "")) '最高值
l = Trim(Replace(Sheets("[D:\预告.xls].sheet1").Cells(i, 7).Value, ",", "")) '最低值
If h = "" Then h = 0
If l = "" Then l = 0
j = Format(WorksheetFunction.Average(h, l), "0.00")

求用 VBA 编写 获取未打开的预告.xls的数值.

不能获得未打开文件里面的数据,但是我们可以打开获取数据后关闭,例如:

FName = "D:\预告.xls"
Workbooks.Open Filename:=FName, ReadOnly:=True
h=ActiveWorkbook.Sheets("Sheet1").cells(1,6).value
l=ActiveWorkbook.Sheets("Sheet1").cells(1,7).value
ActiveWorkbook.Close SaveChanges:=False
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-13
Dim cnn, SQL$
Set cnn = CreateObject("adodb.connection")
Wrw = "预告.xls"
sh = "预告"
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.Path & "\" & Wrw
SQL = "select ItemCode, cells(i,6)) from [" & sh & "$] group by ItemCode"
Sheets("Sheet1").Range("a2:C65536").ClearContents
Sheets("Sheet1").Range("a2").CopyFromRecordset cnn.Execute(SQL)
cnn.Close
(你可以自己查一下SQL语句,用它的话查找特别方便而且速度很快)
第2个回答  2011-12-13
有推荐做法是文件打开后
.Visible = False
引用,关闭

请教VBA不打开excel文件取得指定单元格数据
复制就是application.Workbooks("文件名").sheets("表名").range(源单元格地址).copy ActiveSheet.range(目标单元格地址)你可以用Set xlApp = CreateObject("Excel.Application")来建立一个看不到的Excel应用程序对象,然后用xlApp 来替代上面的Application,就会看不到打开的过程了。

Excel VBA 不打开问价提取数据指定区域修改成(该sheet使有使用的单 ...
Sub HandleDate(path$, file_name$, sheet_name$, aim_rng$) On Error Resume Next With ActiveCell.Resize(Range(aim_rng).Rows.Count, Range(aim_rng).Columns.Count) .Formula = "='" & path & "\\[" & file_name & "]" & sheet_name & "'!" & aim_rng .Value =...

VBA如何在不打开工作簿的情况下引用工作簿中的单元格(关键在于不打开...
Public excelapp As New Excel.ApplicationDim fd As FileDialogDim Filepath As Stringdim arr(1 to 100) as integerfilepath=你引用的那个文件的全部路径名称+文件名称Set Workbook = excelapp.Workbooks.Open(Filename:=filepath)With excelapp.Application'---你要引用什么就写下面,比如 我把目标文...

excel中如何用VBA提取单元格中的数字?
Sub tq()Dim r, n As LongDim rg As RangeDim BGArrr = Range("A" & Rows.Count).End(xlUp).RowBGArr = Range("B1:G" & r)n = Mid(Range("A" & r), 2, 1)For Each rg In Range("A1:A" & r) BGArr(rg.Row, 1) = --Left(rg, 1) BGArr(rg.Row, 2) = ...

请教高手如何用VBA编程读取其它excel文件中某个单元格中的内容
sub test()set wb=workbooks.open("D:\\其它excel文档.xls")tmp=wb.worksheets(1).[c2]wb.close 0 msgbox tmp end sub

用Excel地VBA怎么样获取指定区域单元格里面地所有数据
使用for each遍历所选择的单元格即可。如下代码将选择区域的单元格输出在立即窗口。Sub Get_Data()Dim myRange As RangeDim myCell As RangeSet myRange = Application.InputBox("选择区域", Type:=8)For Each myCell In myRangeDebug.Print myCell.ValueNextEnd Sub ...

vba复制另一个未打开的excel中的数据
sub copy()application.Workbooks("有具体路径的文件名").sheets("sheet1").range(源单元格地址).copy ActiveSheet.range(目标单元格地址)end sub

用VBA 怎么提取每个分页的固定单元格内的数值
sub xxx() for i=3 to 12 activesheet.cells(i,"b")=sheets(i).[F2] nextend sub

vba如何读取excel中某单元格的行数或列数
1、将单元格所选单元格的行号和列号,分别用VBA显示在下面的两个单元格中,如下图所示:2、按下Alt+F11,打开VBA编辑界面,选择当前工作表编写代码,如下图所示:3、下面代码是得到当前单元格的行号并放到当前单元格下一个单元格中:4、下面代码是得到当前单元格的列号并放到当前单元格下面第二个...

vba读取同目录下excel指定列(后台打开,隐藏窗口)
注意看:现在的cells(1,3)数值是空的。在sheet1的工作表中,双击你的鼠标。你会发现,cells(1,3)的值变成了cells(1,1)和cells(1,2)的和。(204849=125895+78954)8 总结:其实VBA主要是触发和指定单元格。1.触发的原理其实很简单,大家可以选择不同的触发模式,试一下就知道是怎么回事了...

相似回答
大家正在搜