作者sueadolph (人..只剩下不信任)
看板Visual_Basic
标题Re: [VBA ] 如何在 Excel 读取 .csv 档案
时间Wed Jul 28 02:24:22 2010
※ 引述《evantw (安安小成)》之铭言:
: 执行环境:Excel 2003
: 请问如果我有一个档名 text 123.txt
: 在run到 SQL 语法中 select *from text 123.txt 时就会发生错
: 但是如果将档名中的空格去掉成 text123.txt 在Run就不会错误
: 但是我的档名一定要有空格的情况下
: select *from text 123.txt <--- 要怎样改呢???
档名改成text_123.txt
或是先用程式开本来的txt,另存一个档名....
: 另外~~
: 请问如何利用 Excel VBA 读取 xxx.csv 档案指定范围内容
: 而 .csv 档名可能会有所变动,所以要用个变数来代替
: 假设:我想利用 Excel VBA 读取 C:\test 内的 test123.csv 内
: 范围 B22:D30 <用Excel开启时的位置> 内资料
: 复制到我正开启的 Book1.xls 的 sheet1 内
: 并从 A1 栏位依序贴上
: 请问这样需要这样功能的 VBA 要怎样写???
: 谢谢各位~~
以下为不入流式的写法~
忘了之前帮谁写, 他说我写法很怪...
没办法,当时学的时候没书(office才刚2000
只能查网路自学....
光是你文章要的依序贴上, 大概至少有四五种以上的方式
每个人学的又都不同XD
底下是最懒的一种 COPY Paste
------------------
' 先记得现在在哪个excel档
Set myWorkBook1 = ActiveWorkbook
'开启csv...当然也适用开EXCEL
dlgAnswer = Application.Dialogs(xlDialogOpen).Show
If dlgAnswer = 0 Then End
'开启的资料档
Set myWorkBook2 = ActiveWorkbook
'资料存放的sheet
Set mySheet2 = Worksheets(1)
'不清楚你要怎麽抓资料,自己选一种
'从第一格抓到该资料的最後一笔
Set myRng = Range(mySheet2.Cells(1, 1), mySheet2.UsedRange)
'从a1抓到e4
'Set myrng = Range(mySheet2.Cells(1, 1), mySheet2.Cells(4, 5))
'有需要算格子的话会用到
'A = mySheet2.UsedRange.Rows.Count
'B = mySheet2.UsedRange.Columns.Count
myRng.Copy
'拷贝完资料 回家贴了
myWorkBook1.Activate
'从A20处 贴上所需的资料
Range("A20").Select
' 直接使用copy、贴上的方式
ActiveSheet.Paste
' 关掉csv档
myWorkBook2.Close
' 释放是好习惯
Set myRng = Nothing
Set mySheet2 = Nothing
Set myWorkBook2 = Nothing
Set mySheet1 = Nothing
Set myWorkBook1 = Nothing
--------------------end--------------------
(太久没玩ANSI的颜色Orz,变那些颜色花的时间,比打这程式久- -
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.118.197.88