EXCEL VBA 运行时错误1004 应用程序定义或对象定义错误

我想把几张表复制粘贴到一张表里,然后试了几种方法,包括注释里的,都是1004,求帮助Subadd()Dima!,b!,c!,i!,j!DimwbAsWorkbookDim... 我想把几张表复制粘贴到一张表里,然后试了几种方法,包括注释里的,都是1004,求帮助
Sub add()
Dim a!, b!, c!, i!, j!
Dim wb As Workbook
Dim rng As Range
Dim mypath As String
Dim myname As String
mypath = ThisWorkbook.Path & "\"
myname = Dir(mypath, vbDirectory)
Do While myname <> ""
If InStr(myname, "_表格") <> 0 Then
Set wb = Application.Workbooks.Open(mypath & myname)
a = Sheets(1).Range("A100").End(xlUp).Row
b = Sheets(1).Range("IV1").End(xlToLeft).Column
'MsgBox (a)
'MsgBox (b)
'ThisWorkbook.Sheets(1).Range(Cells(a, b)).CurrentRegion.Copy wb.Sheets(1).Range("Cells(i, b)")
'Set rng = wb.Sheets(1).Range(Cells(1, 1), Cells(a, b))
'rng.Copy
'rng.Clear
'Set rng = ThisWorkbook.Sheets(1).Range(Cells(c + 1, 1))
'rng.PasteSpecial Paste:=xlPasteValues
'wb.Sheets(1).Range(Cells(1, 1), Cells(a, b)).Copy
'ThisWorkbook.Sheets(1).Range(Cells(c + 1, 1)).PasteSpecial Paste:=xlPasteValues
For i = 1 To a
For j = 1 To b
If j > b Then
GoTo NI4
End If
wb.Sheets(1).Range(Cells(i, j)).Copy
ThisWorkbook.Sheets(1).Range(Cells(c + 1, j)).PasteSpecial Paste:=xlPasteValues
Next j
NI4:
Next
wb.Close
c = c + 2
MsgBox (c)
End If
myname = Dir
Loop
End Sub
我已经找到答案了。VBA还是不熟啊。

ThisWorkbook.Sheets(1).Cells(c + i, j).Value = wb.Sheets(1).Cells(i, j).Value
展开
 我来答
万年金刚钻
2015-06-26 · TA获得超过1.6万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:3359万
展开全部
Range(Cells(i, j))

这种形式用于区域:
Range(Cell1,Cell2)
更多追问追答
追问
我想请教下,那如果我想起始位置和终止位置都含参数,或者有一个是列和行都含参数,怎么用range格式表示
追答
range(cell(m,n),(i,j))
前一个是左上角,后一个是右上角
百度网友e1af404
2015-06-25 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.1万
采纳率:59%
帮助的人:3893万
展开全部
连长,啥情况?整这么复杂?
我来看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式