【发布时间】:2015-12-10 18:45:41
【问题描述】:
我目前正在编写一个希望能做这组事情的代码:
- 从数据库文件中,让我选择并打开一个源文件
- 转到源表,并从源文件中复制 A、B、D、E 和 F 列中的所有数据
- 返回数据库文件(数据表)并在 A、B、D、E 和 F 列上找到下一个空行。
- 然后逐列粘贴所有数据
- 关闭源文件而不保存
我拥有的当前代码仅满足要求 1 和 5。这是我当前的代码:
Option Explicit
Sub Copy_data()
Dim databasewkb As Workbook, sourcewkb As Workbook
Dim Ret1, Ret2
Dim srcws As Worksheet ' Variable for source workbook worksheets
Dim databasews As Worksheet ' Variable for portal workbook worksheets
Dim srcLR As Long ' last row of the source worksheet
Set databasewkb = ActiveWorkbook
'~~> Get the first File
Ret1 = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", _
, "Please select the source file file")
If Ret1 = False Then
' Tell the user why the code has been terminated
MsgBox ("Sorry, unable to proceed without a file.")
Exit Sub
End If
' Open the Source file
Set sourcewkb = Workbooks.Open(Ret1)
' Set the source worksheet
Set srcws = sourcewkb.Sheets("Source Sheet")
' Set the first destination worksheet
Set databasews = databasewkb.Sheets("Data Sheet")
With srcws
' Find the last row of data in the Source worksheet
srcLR = .Cells(Rows.Count, 1).End(xlUp).Row
'im not sure what to put here
' close the source workbook, don't save any changes
sourcewkb.Close SaveChanges:=False
' Clear the objects
Set srcws = Nothing
Set sourcewkb = Nothing
Set databasews = Nothing
Set databasewkb = Nothing
End Sub
【问题讨论】:
-
C列不是操作的一部分?
-
嗨,A.S.H,实际上没有。我故意跳过了那个,因为我只想复制给定列上的那些。
-
嗨。您可以尝试将我的答案中给出的代码放在代码的缺失部分。顺便说一句,不要忘记
End With;) -
让我确认一下。这些列是完全独立的吗?我的意思是,源表中同一行上的数据值,它们不需要保持在目标表中的同一行上吗??
-
是的,他们需要保持在同一行。
标签: database vba copy transfer