我正在尝试根据其列将vba中的某些单元格从用户选择的Excel文件(req)复制到另一个固定文件(rfqq)。下面是我的代码,它带来错误424,对象是必需的。有人可以帮忙吗?。我是新手,期待对此有一个非常简单的答案!
Sub rfqo()
Dim rfq As Workbook
Dim req as variant
Dim rowcount, rfqc, reqab, i As Integer
req = Application.GetOpenFilename
If req = False Then
MsgBox "No file specified.", vbExclamation, "Duh!!!"
Exit Sub
Else
Workbooks.Open Filename:=req
End If
rowcount = ActiveSheet.UsedRange.Rows.Count
Set rfq = Workbooks.Open("c:\users\mostafa\desktop\rfqq.xlsx")
For i = 1 To rowcount + 12
rfqc = 12 + i
reqab = 2 + i
rfq.Sheets("Sheet1").Range("C12:C" & rfqc).Value = _
req.Sheets("Sheet1").Range("AB2:AB" & reqab).Value
rfq.Sheets("sheet1").Range("e12:e" & rfqc).Value = _
req.Sheets("sheet1").Range("ac2:ac" & reqab).Value
rfq.Sheets("sheet1").Range("f12:f" & rfqc).Value = _
req.Sheets("sheet1").Range("af2:af" & reqab).Value
rfq.Sheets("sheet1").Range("e12:e" & rfqc).Value = _
req.Sheets("sheet1").Range("ac2:ac" & reqab).Value
rfq.Sheets("sheet1").Range("g12:g" & rfqc).Value = __
req.Sheets("sheet1").Range("ag2:ag" & reqab).Value
Next i
End Sub
您需要将变量定义req
为工作簿对象,并使用其他字符串作为要打开的工作簿的名称。
因此,请按如下所示更改您的代码:
Dim rfq As Workbook, req as Workbook '~~>Change 'req' to Workbook type
Dim vBookName as variant '~~>Add new variant to capture the name
Dim rowcount As Integer, rfqc As Integer, reqab As Integer, i As Integer
'~~>without 'As Integer' statements, all but the last one of these was a variant
vBookName = Application.GetOpenFilename '~~>replace 'req' w 'vBookName' in this section
If vBookName = False Then
MsgBox "No file specified.", vbExclamation, "Duh!!!"
Exit Sub
Else
Set req = Workbooks.Open(Filename:=vBookName) '~~> Use 'Set' as 'req' is an object
End If
rowcount = ActiveSheet.UsedRange.Rows.Count
Set rfq = Workbooks.Open("c:\users\mostafa\desktop\rfqq.xlsx")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句