Метод RefreshFile - PullRequest
       0

Метод RefreshFile

0 голосов
/ 22 января 2020

Я сталкивался со старым модулем vba, который использует метод RefreshFile . Предположительно, он берет путь к файлу из столбца B и обновляет файл соединений / запросов / сводок.

Моя проблема в том, что я не знаю, безопасно ли это использовать, поскольку я не смог найти где-либо информацию об этом методе, касающуюся Excel. Мне интересно, есть ли какие-либо проблемы или подводные камни с этим, так как никто, кажется, не использует его. Будет ли это действовать так же, как .RefreshAll?

Заранее спасибо.

Столбцы Excel:

enter image description here

VBA:

Sub Main()

Dim thisWB As Workbook
Dim wbArray() As String
Dim wbCount As Integer
Dim wbSheet As Worksheet
Dim i As Integer, j As Integer
Dim lastUpdate As Date
Dim lastUpdateStr As String, freqStr As String
Dim pword As String
Dim refreshBool As Boolean, proceedBool As Boolean
Dim nonRefreshStr As String

Set thisWB = ThisWorkbook
Set wbSheet = thisWB.Worksheets("Workbooks")

Application.Calculation = xlCalculationAutomatic

If wbSheet.Range("J2") = "N" Then
    Exit Sub
Else
End If

With wbSheet
    wbCount = .Cells(.Rows.Count, 1).End(xlUp).row
    wbCount = wbCount - 1
    ReDim wbArray(1 To wbCount, 1 To 3)

    For i = 1 To UBound(wbArray)
        For j = 1 To 3
            wbArray(i, j) = .Cells(i + 1, j).Value
        Next j
    Next i
End With

pword = "test"

'this works so that "i" represents the row number minus 1 (e.g. if you want to start with the Late Fee Dashboard
'which is on row 3, enter i = 2. Or else start at the LBound(wbArray)
'For i = 1 To 1
For i = LBound(wbArray) To UBound(wbArray)
    freqStr = wbArray(i, 3)

    If freqStr = "Each Day" And wbSheet.Range("J2").Value = "Y" Then
        proceedBool = True
    ElseIf freqStr = "3rd Business Day" And wbSheet.Range("J3").Value = "Y" Then
        proceedBool = True
    ElseIf freqStr = "1st Business Day" And wbSheet.Range("J4").Value = "Y" Then
        proceedBool = True
    Else
        proceedBool = False
    End If

    If proceedBool Then '******************!!!SEE RefreshFile BELOW!!!*****************

        refreshBool = RefreshFile(wbArray(i, 1), wbArray(i, 2), pword)

        If refreshBool Then
            lastUpdate = Now
            lastUpdateStr = FormatDateTime(lastUpdate, vbShortDate)
            lastUpdateStr = lastUpdateStr & " " & FormatDateTime(lastUpdate, vbShortTime)
            With wbSheet
                .Cells(i + 1, 4).Value = lastUpdateStr
            End With
        Else
            If nonRefreshStr = "" Then
                nonRefreshStr = wbArray(i, 1)
            Else
                nonRefreshStr = nonRefreshStr & ", " & wbArray(i, 1)
            End If
        End If
    Else
    End If
Next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...