ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 12491|回复: 14

如何在窗体spreadsheet导入EXCEL文件的单元格内容(已解决)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-5-12 13:03 | 显示全部楼层 |阅读模式

小弟想实现如下目的:点击一个窗体按钮,用application.getopenfilename打开若干EXCEL文件,并把这些文件的某些信息导入spreadsheet。现在会用Filesystemobject导入文件的NAME,DATECREATED了,但还是不知道如何把里面的单元格内容(字母和数字)导入[em04]

这些文件的格式是完全一致的。小弟对ADO不太了解,不知道能不能用ADO实现,还是直接用普通的VBA命令就可以实现?还请老师给予解答!在线等,不胜感谢!!

[此贴子已经被作者于2007-5-12 16:59:24编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-12 13:39 | 显示全部楼层

没有人回么?自己顶一下!

实在是没有精力翻20多页的ADO搜索结果了。。。

还望知道的老师给予解答啊!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-12 14:14 | 显示全部楼层

可能是问题没说清楚

比如在一个xls文件中,创建了一个窗体spreadsheet控件,然后点窗体按钮,把打开的不同路径下的各个xls文件中sheet1的cell(1,1)复制到spreadsheet的cell(I,1)里面。这样说应该很清楚吧。

青山、TGB等老师在么?帮我解答一下吧!!!

TA的精华主题

TA的得分主题

发表于 2007-5-12 14:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
OLCIq2hB.rar (14.64 KB, 下载次数: 4855)
我也在用这个控件,看看这个,可能对你有用

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-12 14:53 | 显示全部楼层

你的这个是从本工作簿直接赋值给spreadsheet,不是我所想要的

不过还是非常感谢![em44]

TA的精华主题

TA的得分主题

发表于 2007-5-12 15:42 | 显示全部楼层
类似这样的代码行不行
Private Sub CommandButton1_Click()
    Dim xlapp As New Excel.Application
    Dim bk As Workbook
        fn = Application.GetOpenFilename("excel 文件(*.xls),*.xls", MultiSelect:=True)
        If IsArray(fn) Then
            k = 3
            For i = 1 To UBound(fn)
                Set bk = xlapp.Workbooks.Open(fn(i)) '
                Me.Spreadsheet1.ActiveSheet.Cells(k, 2) = bk.Sheets(1).Cells(3, 2)
                k = k + 1
                bk.Close False
            Next
        End If
        Set bk = Nothing
        xlapp.Quit
        Set xlapp = Nothing
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-12 16:17 | 显示全部楼层

TGB老师,您好!

感谢你的帮助。我试了一下,可以运行。

还有个问题接着请教。

刚才说的是打开时的不同文件的sheets(1).cells,如果我想把另外一个本工作簿同目录下的文件a.xls中的sheets(1).cells(2,5)分别赋给 Me.Spreadsheet1.ActiveSheet.Cells(I+1, 4),又该怎么办呢?

我自己试了一下,这是我的代码

Private Sub CommandButton1_Click()
    Dim Files As Variant, Temp As String, Temp1 As String
    Dim mysheet As Object, I As Integer, J As Long, K As Long
    Dim Asc_num As Integer
    Dim Filenumber, irow1 As Integer
    Dim findx, irow As Long
    Dim xlapp As New Excel.Application
    Dim bk As Workbook

    On Error Resume Next
   
    Files = Application.GetOpenFilename("All Files(*.*),*.*,All Files(*.*),*.*", , , , True)  '打开文件对话框读入多文件目录
    If Not IsArray(Files) Then Exit Sub                   '没有选择文件则退出
   
    For I = 1 To UBound(Files)
   
       Temp = FileDate(Files(I), 1)
       Temp1 = FileName(Files(I))
       Spreadsheet1.Cells(I + 1, 3) = Temp
       Spreadsheet1.Cells(I + 1, 2) = Temp1
      
       Set bk = xlapp.Workbooks.Open(ThisWorkbook.Path & "\a.xls")
       Me.Spreadsheet1.ActiveSheet.Cells(I + 1, 4) = bk.Sheets("Sum").Cells(2, 5)
       bk.Close False
    Next
    Set bk = Nothing
    xlapp.Quit
    Set xlapp = Nothing
   
End Sub

红字是改的地方,结果运行Me.Spreadsheet1.ActiveSheet.Cells(I + 1, 4)什么也没有,不知道什么原因?希望您看一下!

[此贴子已经被作者于2007-5-12 16:19:58编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-12 16:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

我顶!

TGB老师还在么??

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-12 16:49 | 显示全部楼层

哈哈~~

自己解决了!!

自己上面的代码没有任何问题

就是路径搞错了!呵呵!终于能好好睡一觉了!

非常感谢TGB老师的帮助!!!

TA的精华主题

TA的得分主题

发表于 2007-7-4 14:45 | 显示全部楼层

一个单无格一个单无格写,真麻烦啊,能不能一个区域的写入

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 23:33 , Processed in 0.053027 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表