如何编写可在同一工作簿中自动将数据从一个工作表复制并粘贴到另一个工作表的VBA?我有7列:提交者,提交日期,hcp号,hcp名称,FRN,免除类型(表B中的表单类型),程序类型和行号。工作表A自动刷新,因此数据始终是最新的。唯一需要注意的是,拉入表B的数据必须基于提交的日期实时进行。我知道我必须刷新工作表B来更新其数据。没关系。
例如:
今天是2017年4月4日。我希望从提交日期4/4/2017的7列(来自表A)中提取所有数据,并将它们添加到表B中。这必须在我单击刷新所有数据时发生。
VBA也应提取周末提交的数据。
这是我到目前为止所做的:
Sub Refresh()
Dim i As Long
Dim x As Double
Dim Worksheet1 As Worksheet
Dim Worksheet2 As Worksheet
Dim ColumnB As Long
Dim ColumnC As Long
Dim ColumnD As Long
Dim ColumnE As Long
Dim ColumnF As Long
Dim ColumnG As Long
Dim ColumnH As Long
Dim ColumnI As Long
Set Worksheet1 = ActiveWorkbook.Worksheets("AUTOTRACK") ' Change name of sheet if necessary
Set Worksheet2 = ActiveWorkbook.Worksheets("Tracking Sheet") ' Change name of sheet if necessary
ColumnB = 1 ' Change if you want other columns, 1 = A-column, 2 = B etc
ColumnC = 2
ColumnD = 3
ColumnE = 4
ColumnF = 5
ColumnG = 6
ColumnH = 7
ColumnI = 8
For i = 1 To Worksheet1.UsedRange.Rows.Count
If Worksheet1.Cells(i, ColumnB).Value = DateAdd(
“d”, -1, Then
x = Worksheet1.Cells(i, ColumnA).Value
Exit For
End If
Next

日期不完整,因为我不想拥有日期范围。它应该根据今天的日期 - 1天提取数据。另一个问题是列不匹配。总共有8个,表A中的表H在表B中不相同。
答案 0 :(得分:1)
MsgBox "Job Done!"
此代码将sheetA中的A1到A7的单元格复制到SheetB。 您可以根据需要提供范围作为来源和目的地
答案 1 :(得分:-1)
我发布了一个示例代码,它将帮助您解决问题。
Sub copypaste()
Dim r As Range, filt As Range, d1 As Long, d2 As Long
With Worksheets("sheet1")
d1 = .Range("F1").Value
d2= .Range("G1").Value .Range("A1").CurrentRegion.AutoFilter field:=.Range("A1").Column, Criteria1:=">=" & CDate(d1) _ , Operator:=xlAnd, Criteria2:="<=" & CDate (d2)
= .Range("a1").CurrentRegion.SpecialCells(xlCellTypeVisible)
With Worksheets("sheet2") .Cells.Clear filt.Copy .Range("a1").PasteSpecial
End Sub