-1
我一直在努力使下面的代碼工作,並且它昨天晚上做了,但今天上午在打開Excel時不知何故停止了運行。實質上,我使用一個vlookup宏來處理來自各種工作簿的重要數據,而工作簿名稱取決於該行的相應「標題」。首先,我用if語句檢查文件是否確實存在;如果沒有,我想突出標題單元格紅色,並移動到下一行執行相同的檢查。如果該文件存在,我想用適當的數據填充該行,並用白色突出顯示標題單元格。Excel - 基於單元名稱的幾個工作簿的重要數據的宏
下面我的代碼 - 我真的很感激,如果你可以看看,幫助我!
Public Function FileFolderExists(strFullPath As String) As Boolean
On Error GoTo NextStep
If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = True
NextStep:
On Error GoTo 0
End Function
Private Sub CommandButton1_Click()
Dim wsi As Worksheet
Dim wse As Worksheet
Dim j As Integer
Dim i As Integer
Set wsi = ThisWorkbook.Sheets("Income")
Set wse = ThisWorkbook.Sheets("Expense")
j = 3
For i = 1 To 46
If FileFolderExists(wsi.Cells(5, i + 2).Value & ".xlsx") Then
wsi.Range(wsi.Cells(6, j), wsi.Cells(51, j)).Formula = "=VLOOKUP(index($B$6:$AV$51,row()-5,1),'[" & wsi.Cells(5, i + 2).Value & ".xlsx]Sheet1'!$A$1:$E$70,4,FALSE)"
Sheets("Mark-Up Table").Cells(i + 5, 2).Interior.Color = RGB(255, 255, 255)
Sheets("Mark-Up Table").Cells(5, i + 2).Interior.Color = RGB(255, 255, 255)
Else
Sheets("Mark-Up Table").Cells(i + 5, 2).Interior.Color = RGB(255, 0, 0)
Sheets("Mark-Up Table").Cells(5, i + 2).Interior.Color = RGB(255, 0, 0)
End If
If FileFolderExists(wse.Cells(5, i + 2).Value & ".xlsx") Then
wse.Range(wse.Cells(6, j), wse.Cells(51, j)).Formula = "=VLOOKUP(index($B$6:$AV$51,row()-5,1),'[" & wse.Cells(5, i + 2).Value & ".xlsx]Sheet2'!$A$1:$E$70,5,FALSE)"
Else
'do nothing
End If
j = j + 1
Next i
End Sub
什麼錯誤號碼,你有什麼地方? –
感謝您的回覆KazJaw。它不會產生錯誤號,它只是不會做它應該做的。我懷疑問題是在私營部門開始之前,高層的公共職能出現問題。我希望子中的第一個if語句檢查「確定該文件是否存在?」這是通過公共職能完成的。如果是,則繼續。如果不是,請轉到下面的其他if語句。 – jcv
嘗試逐步調試您的代碼。在'Private Sub CommandButton1_Click()'過程的開始處添加'Stop',並用F8鍵調試它。檢查你期望的子程序基本點的變量。 –