Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 13678|回复: 9

[已解决]用VBA怎么把CSV文件复制到EXCLE中

[复制链接]
发表于 2013-6-30 20:52 | 显示全部楼层 |阅读模式
VBA.jpg



求助啊,谁会啊
求助.zip (55.5 KB, 下载次数: 60)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-6-30 20:59 | 显示全部楼层
回复

使用道具 举报

发表于 2013-6-30 21:01 | 显示全部楼层
回复

使用道具 举报

发表于 2013-6-30 21:17 | 显示全部楼层    本楼为最佳答案   
  1. Sub ReadCSV()
  2.     Dim arr
  3.     Dim strCSV As String
  4.     On Error GoTo ErrorHandler


  5.     strCSV = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1) & ".csv"
  6.     If Len(Dir(strCSV)) = 0 Then
  7.         MsgBox "当前工作簿目录下没有 " & strCSV, vbCritical + vbOKOnly
  8.         Exit Sub
  9.     End If

  10.     With Application
  11.         .ScreenUpdating = False
  12.         .DisplayAlerts = False
  13.         .EnableEvents = False
  14.         .Calculation = xlCalculationManual
  15.     End With

  16.     Workbooks.Open Filename:=strCSV, ReadOnly:=True

  17.     arr = ActiveSheet.UsedRange.Value
  18.     ActiveWorkbook.Close False
  19.    
  20.     If IsArray(arr) Then
  21.         With Worksheets("read")
  22.             .Cells(Rows.Count, 1).End(xlUp).Offset(2).Resize(UBound(arr), UBound(arr, 2)).Value = arr
  23.         End With
  24.         MsgBox "复制完成"
  25.     End If

  26.     With Application
  27.         .ScreenUpdating = True
  28.         .DisplayAlerts = True
  29.         .EnableEvents = True
  30.         .Calculation = xlCalculationAutomatic
  31.     End With

  32.     Exit Sub

  33. ErrorHandler:
  34.     With Application
  35.         .ScreenUpdating = True
  36.         .DisplayAlerts = True
  37.         .EnableEvents = True
  38.         .Calculation = xlCalculationAutomatic
  39.     End With

  40.     MsgBox Err.Number & vbCrLf & _
  41.            Err.Description
  42. End Sub
复制代码
回复

使用道具 举报

发表于 2013-6-30 21:18 | 显示全部楼层
我的代码里读取数据后隔了一行再写入的,你根据实际情况来调整。
.Cells(Rows.Count, 1).End(xlUp).Offset(2)
回复

使用道具 举报

 楼主| 发表于 2013-7-2 23:00 | 显示全部楼层
hwc2ycy 发表于 2013-6-30 21:18
我的代码里读取数据后隔了一行再写入的,你根据实际情况来调整。
.Cells(Rows.Count, 1).End(xlUp).Offset ...

是吧CSV文件拷贝到READ的工作表中,有一段语法错误
指点
错误.jpg
回复

使用道具 举报

 楼主| 发表于 2013-7-2 23:10 | 显示全部楼层
谢谢了,把后面删除就可以运行了
非常感谢
回复

使用道具 举报

发表于 2013-7-2 23:22 | 显示全部楼层
data.rar (58.11 KB, 下载次数: 140)
回复

使用道具 举报

 楼主| 发表于 2013-7-3 23:44 | 显示全部楼层
hwc2ycy 发表于 2013-7-2 23:22

非常感谢,其实昨天的都可以了,把后面的删除就会重复复制,现在好了,就覆盖原来的位置。
回复

使用道具 举报

发表于 2014-2-27 11:00 | 显示全部楼层
我复制了版主的代码,总提示下标越界,怎么回事啊?
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 18:01 , Processed in 0.188510 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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