朋友们,我正在尝试每天打开一个CSV文件(每天从其他程序生成),并将CSV工作表中的数据复制到我当前工作簿中的某个工作表中.我已经对这段代码工作了一段时间,我认为它非常接近正确,但我在复制/粘贴行上一直遇到运行时错误438.有帮助吗?
谢谢!
这是我的代码:
Sub GetCSV()
Dim thatWB As Workbook, thisWB As Workbook
Dim thisWS As Worksheet, thatWS As Worksheet
Dim zOpenFileName As String
Dim inputData As String
'get name of sheet to open
inputData = InputBox("Enter name of file")
'open CSV file
zOpenFileName = Application.GetOpenFilename
'error handling
If zOpenFileName = "" Then Exit Sub
Application.ScreenUpdating = False
Set thisWB = ThisWorkbook 'destination workbook
Set thisWS = Sheets("f_dump") 'destination worksheet
Set thatWB = Workbooks.Open(zOpenFileName) 'source CSV
Set thatWS = thatWB.Sheets(inputData) 'source …Run Code Online (Sandbox Code Playgroud) 我在名为Sheet1的Excel工作表中有一列ID。我有与列A右侧列中的ID对应的数据。行中的单元格数量有所不同。例如:
A,B,C,D,E,F,...
约翰,5、10、15、20
雅各布2 3
Jingleheimmer,5,10,11
我正在尝试以以下格式将数据复制到新工作表Sheet5中:
A,B,C,D,E,F,...
约翰5岁
约翰10岁
约翰15岁
约翰20岁
雅各布2
雅各布3岁
Jingleheimmer,5岁
Jingleheimmer,10岁
Jingleheimmer,11岁
我编写了以下代码,该代码复制了前两个ID。我可以继续复制粘贴代码的后半部分,只是更改单元格,但是,我有100个ID。这将花费太长时间。我认为无论何时重复一个过程,我都应该使用循环。您能帮我把这个重复的代码变成一个循环吗?
Sub Macro5()
Dim LastRowA As Integer
Dim LastRowB As Integer
''' Process of copying over first ID '''
'grab all data cells in B2 to the right
With Sheets("Sheet1").Select
Range("B2", Range("B2").End(xlToRight)).Select
Selection.Copy
End With
'paste that data into the first empty cell of Column B in Sheet5
With Sheets("Sheet5").Select
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End With
'grab the corresponding …Run Code Online (Sandbox Code Playgroud) 当尝试使用 glob 获取文件名列表和 csv 打开 csv 文件进行字典读取时,我收到权限被拒绝的错误。这是我的代码:
import csv
import glob
#Filepath variable for the CSV files
path = "C:\\Users\\josh\\Data"
for filename in glob.glob(path):
with open(filename) as csv_file:
for row in csv.DictReader(csv_file):
print row
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下代码运行一些文件打开测试,它工作得很好。所以我知道我可以打开、读取、写入这个文件夹:
open('C:\\Users\\josh\\Data\\testing.txt', 'w').write('this is a test')
open('C:\\Users\\josh\\Data\\03142016.csv')
Run Code Online (Sandbox Code Playgroud)
最后,如果有帮助的话,这是完整的回溯:
Traceback (most recent call last):
File "<ipython-input-10-49215e5eb704>", line 1, in <module>
runfile('C:/Users/josh/.spyder2/csvparser2.0.py', wdir='C:/Users/josh/.spyder2')
File "C:\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 580, in runfile
execfile(filename, namespace)
File "C:/Users/josh/.spyder2/csvparser2.0.py", line 41, in <module>
with open(filename) as csv_file:
IOError: [Errno 13] Permission denied: 'C:\\Users\\josh\\Data'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?感谢您的帮助。