excel - 将具有指定日期的数据从一个工作簿复制到另一个工作簿
问题描述
我是 VBA 新手,需要一些帮助。
我的目标是从每分钟收集数据并被许多人使用的工作簿中复制特定时期内的数据。
下面突出显示的步骤:
1-开源 2-使用指定的开始和结束日期 3-删除表格上的任何现有过滤器 >>>这很重要,因为很多人使用它,我希望它没有过滤器 4-过滤开始/结束日期 5-过滤按升序排列 6-复制所有数据,包括标题 7-将所有数据粘贴到目标位置 8-从源中删除所有过滤器并关闭保存
下面是我的代码:谢谢
Sub Copydated()
'Disabling screen updates
Application.ScreenUpdating = False
'Declaring two variables of Date data type
Dim StartDate, EndDate As Date
Dim wbd, wbs As Workbook
Dim shd, shs, shi As Worksheet
Set wbd = ThisWorkbook
Set shd = wbd.Sheets("Data Dump")
Set shi = wbd.Sheets("Instruction")
Set wbs = Workbooks.Open("path")
'Initializing the Date variables with start/end date
StartDate = shi.Range("B3").Value
EndDate = shi.Range("D3").Value
'Activating the worksheet object and filter
'Filter the data based on date range between starting date and end date
wbs.Activate
Rows("1:1").Select
wbs.Sheets("Sheet1").ListObjects("Table_lebsqlprodmo.advics.local_CaliperData_PerformTestData") _
.Sort.SortFields.Clear
wbs.Sheets("Sheet1").ShowAllData
wbs.Sheets("Sheet1").ListObjects("Table_lebsqlprodmo.advics.local_CaliperData_PerformTestData") _
.Range.AutoFilter Field:=1, Criteria1:= _
">=" & StartDate, Operator:=xlAnd, Criteria2:="<=" & EndDate
wbs.Sheets("Sheet1").ListObjects( _
"Table_lebsqlprodmo.advics.local_CaliperData_PerformTestData").Sort.SortFields. _
Add Key:=Range("Table_lebsqlprodmo.advics.local_CaliperData_PerformTestData[[#All],[DataTime]]") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").ListObjects( _
"Table_lebsqlprodmo.advics.local_CaliperData_PerformTestData").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Select all data and copy
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
'Paste data into desti
shd.Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'Remove filter from source and close
wbs.Activate
Selection.AutoFilter
wbs.Close savechanges:=False
End Sub
解决方案
推荐阅读
- javascript - Safari 中的 JavaScript/HTML 视频标签。阻止现在播放控件
- javascript - 解构参数(TypeError:null 没有属性)
- python - 在自己的方法中更改类的属性是不好的做法吗?
- c# - 相对于其局部轴将速度添加到对象
- python - 仅将两个字典与第一个字典中的键合并
- php - SQL不更新和插入数据到数据库
- c++ - 单击可检查按钮时如何避免Qt执行QAbstractButton::nextCheckState()?
- javascript - 为什么console.log 显示所有内容,并且只打印一个?
- c# - 在 C# 中保存应用程序配置的最佳方式
- java - 使用 Neo4j 进行 Spring 身份验证