2014-10-30 93 views
0

我知道这是一个超级通用的错误,但我是新的VBA /宏,不能过去这个。VBA-Excel 2010宏错误“memeber或数据方法未找到”

我有一个和Excel的工作簿,有我需要复制到另一个Excel工作簿的数据。 数据复制到的Excel工作簿位于网络共享上,并且会被频繁写入。

这里是我的宏代码:

Sub export() 
Dim exportFile As String 
Dim importSheet As String 
Dim rowData As String 

exportFile = "\\<server>\spd\_Spec_ParaData\data_import.xlsx" 
importSheet = "OutPutValues" 
importRange = "A2:ZZ2" 

' Get the row from the workbook that we are running in 
rowData = Workbooks().Worksheets(importSheet).Range(importRange) 

' Not sure if this will work, or always overwrite the last row. May need to be .Row+1 
newRow = Workbooks(exportFile).Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Row 

exportRange = "A" & (newRow + 1) & ":ZZ" & (newRow + 1) 

' Assuming Workbooks() gets the current workbook. 
Workbooks(exportFile).Sheets(exportSheet).Range(exportRange) = Workbooks().Sheets(importSheet).Range(importRange) 

End Sub 

我的错误是在rowData =工作簿(导出文件)坡平了。 工作表

有人可以帮我弄清楚我做错了什么吗?

谢谢 詹妮弗

+0

它可能意味着对象“Workbooks(exportFile)”不存在,因为作为工作簿地址传递的字符串“exportFile”不指向任何Excel工作簿。 – 2014-10-30 22:28:51

+0

如果你想得到帮助,试着详细一点问题。我建议:1.创建一个新的宏,并只放置'exportFile =“\\ yourPath”','myWorkbook = Workbooks(exportFile)'; 2.运行宏; 3.通过这样做来修改你的问题。 – 2014-10-30 22:33:26

回答

0

进行了以下修改试试你的代码,我只是打开工作簿和引用的工作表(我想这个问题是)。我正在关闭工作簿。

Sub export() 
Dim exportFile As String 
Dim importSheet As String 
Dim rowData As String 
Dim wb As Workbook 
Dim ws1 As Worksheet, ws2 As Worksheet 

exportFile = "\\<server>\spd\_Spec_ParaData\data_import.xlsx" 
importSheet = "OutPutValues" 
importRange = "A2:ZZ2" 

'Open your workbook and point to your spreadsheet  
Set wb = Workbooks.Open(exportFile) 
Set ws1 = wb.Sheets(importSheet)  

' Get the row from the workbook that we are running in 
rowData = wb.ws.Range(importRange) 

' Not sure if this will work, or always overwrite the last row. May need to be .Row+1 
newRow = wb.Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Row 

exportRange = "A" & (newRow + 1) & ":ZZ" & (newRow + 1) 

'NOTE: consider definying the variable "exportSheet", I will do it just for example purpose 
Dim exportSheet As String: exportSheet = "InputValues" 
Set ws2 = wb.Sheets(exportSheet) 

' Assuming Workbooks() gets the current workbook. 
wb.ws2.Range(exportRange) = wb.ws1.Range(importRange) 
wb.Close 

End Sub 
相关问题