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

我想把几张表复制粘贴到一张表里,然后试了几种方法,包括注释里的,都是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
最新回答
听说网名太长会被狗咬

2024-10-18 04:37:31

Range(Cells(i, j))

这种形式用于区域:
Range(Cell1,Cell2)
追问
我想请教下,那如果我想起始位置和终止位置都含参数,或者有一个是列和行都含参数,怎么用range格式表示
追答
range(cell(m,n),(i,j))
前一个是左上角,后一个是右上角
range(cells(m,n),cells(i,j))
前一个是左上角,后一个是右上角
追问
不好意思,能再说清楚点么。我看两个表达式是不同,但是文字相同也没理解到。
咱想幵了

2024-10-18 06:27:00

连长,啥情况?整这么复杂?
我来看看