Sub AllSheetsToMaster()
Const cMaster As Variant = "Master" ' Master Worksheet Name/Index
Const cSearch As String = "2019" ' Search String
Const cFirstR As Long = 1 ' Source First Row Number
Const cFirstC As Variant = 1 ' Source First Column Letter/Number
Dim vntS As Variant ' Source Array
Dim vntC As Variant ' Count Array
Dim vntT As Variant ' Target Array
Dim LastUR As Long ' Source Last Used Row Number
Dim LastUC As Long ' Source Last Used Column Number
Dim LastR As Long ' Target Last Used Row Number
Dim x As Long ' Worksheet Counter
Dim i As Long ' Source Array Row Counter
Dim j As Long ' Source/Target Array Column Counter
Dim k As Long ' Target Array Row Counter
For x = 1 To ThisWorkbook.Worksheets.Count ' Worksheets
' From Source Worksheet to Source Array.
With ThisWorkbook.Worksheets(x)
' Check if current worksheet name is th same as Master Worksheet Name.
If .Name = cMaster Then GoTo NextWorksheet
' Check if current worksheet is empty.
If .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), -4123, , 1) _
Is Nothing Then GoTo NextWorksheet
' Calculate Last Used Row and Column in current Source Worksheet.
LastUR = .Cells.Find("*", , , , , 2).Row
LastUC = .Cells.Find("*", , , , 2, 2).Column
' Copy current used range to Source Array.
vntS = .Range(.Cells(cFirstR, cFirstC), .Cells(LastUR, LastUC))
End With
' From Source Array to Count Array.
' Count Array cannot be bigger than Source Array.
ReDim vntC(1 To UBound(vntS))
k = 0 ' Reset Target Array Row Counter!!!
For i = 1 To UBound(vntS) ' Rows
For j = 1 To UBound(vntS, 2) ' Columns
If vntS(i, j) = cSearch Then
k = k + 1 ' Increase Target Array Row Counter.
vntC(k) = i ' Write Source Array Row number to Count Array.
Exit For ' Stop checking as soon as found.
End If
Next
Next
ReDim Preserve vntC(1 To k) ' Resize Count Array (make it smaller).
' From Source Array to Target Array.
' Resize Target Array to the Count Array rows and Source Array columns.
ReDim vntT(1 To k, 1 To j)
For i = 1 To k ' Rows
For j = 1 To UBound(vntS, 2) ' Columns
vntT(i, j) = vntS(vntC(i), j) ' Write to Target Array.
Next
Next
' From Target Array to Target Range.
With ThisWorkbook.Worksheets(cMaster)
' Calculate Target Last Used Row Number.
If Not .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), -4123, , 1) _
Is Nothing Then LastR = .Cells.Find("*", , , , , 2).Row
' Copy Target Array to Target Range.
.Cells(LastR + 1, cFirstC).Resize(UBound(vntT), UBound(vntT, 2)) = vntT
End With
NextWorksheet:
Next
End Sub
Кэширование не сделано Flash player, но браузером, таким образом, это находится вне контроля Adobe. Я думаю, что Вы нашли осуществимое решение. Если я не хочу кэшироваться, я обычно добавляю случайное число на URL.
То, что я сделал, является контрольной суммой файл SWF, и затем добавьте это к его URL. Остается таким же, пока файл не восстановлен/повторно развернут. Обработанный автоволшебно несколькими строками Сценария PHP серверной стороны
У меня была аналогичная проблема, и в итоге файлы SWF были помещены в подкаталог, названный как номер сборки. Это означало, что URL-адрес SWF-файлов каждый раз указывал на другое место.
В идеале это должно быть обеспечено платформой, но это не приносит радости. Но это прекрасно работает для нас и очень легко интегрируется в наши автоматизированные сборки с Hudson - пока никаких жалоб.
вот пример.
function AC_FL_RunContent(){
var ret = AC_GetArgs(arguments, ".swf?ts=" + getTS(), "movie",
"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",
"application/x-shockwave-flash");
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function getTS() {
var ts = new Date().getTime();
return ts;
}
AC_OETags.js - это файл и html-шаблон существует в нескольких местах. но, как сказано в моем сообщении, я столкнулся с проблемой другого типа.