我能够使以下宏工作,从多个工作簿中复制WorkTracker表中的条目。我现在如何编辑代码以执行以下操作: 1.检查单个文件中的列X(如果它是空的)或者“已报告”已更新到每个单元格 2.如果列X是空白而列a到w不是,则宏需要将该条目复制到填充这些条目的最后一行,复制后,需要使用“报告”更新列X 3.如果列X已填充“已报告”,则应跳过该列,并应检查下一个条目
有一种有效的方法吗?基本上,宏需要合并单个条目,并且还能够识别先前已经报告的条目,因此当宏再次运行时(不是每周一次),它不会再次复制条目。
非常感谢你!
{
var startPlay:Boolean=false;
ns.play("your-video-url");
ns.pause();
ns.seek(0);
addEventListener(Event.ENTER_FRAME, myFunction);
function myFunction(E:Event):void{
var loaded:number=ns.byteloaded/ns.totalbyte;
var tmp:Number=Math.Ceil(loaded);
if(tmp>=4){
startPlay=true;
removeEventListener(Event.ENTER_FRAME, myFunction);
ns.resume();
}
//if you want to make a progress
//progressText.text="Please wait a second";
}
}
答案 0 :(得分:0)
Sub LoopThroughDirectory()
Dim MyFile As String
Dim erow
Dim lRow As Long
Dim lCol As Long
Dim i as Long
MyFile = Dir("C:\Users\bmsand\Documents\Agatha\FY18\Test 2\")
Do While Len(MyFile) > 0
If MyFile = "zmaster.xlsm" Then
Exit Sub
End If
Workbooks.Open (MyFile)
Sheets("WorkTracker").Select
lRow = Cells(Rows.Count, 1).End(xlUp).Row
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 4 to lRow
If Cells(i,24).text = "reported" Then
Else
Exit for
End if
Next i
Range(Cells(i, 23), Cells(lRow, lCol)).Copy
Application.DisplayAlerts = False
ActiveWorkbook.Close
erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste Destination:=Worksheets("Consolidate").Range(Cells(erow, 1), Cells(erow, 23))
MyFile = Dir
Loop
End Sub
For循环我包括检查未标记为“已报告”的第一个实例并相应地设置复制范围。这与原始代码的偏差很小,但我不建议使用.Select和AchtiveSheet。由于这些函数是易失性的,因此在关闭工作簿时会导致意外行为,例如失败。最好是完全限定所有物品,正如Shai Rado在7月31日对你的问题的回答中所指出的那样。