簡體   English   中英

將vlookup公式輸入單元格時出現錯誤1004 vba excel

[英]Error 1004 vba excel when entering vlookup formula into cell

我已經嘗試了一切,包括在論壇中閱讀有關錯誤1004應用程序定義或對象定義錯誤的許多問題,但我找不到任何幫助我修復錯誤的內容。 它在立即窗口中寫入正確的公式。這是代碼。 我把代碼中的錯誤放在了哪里。

變量定義如下,我在錯誤1004時將值包含在監視窗口中

Dim templateName As String       ' = "Company 1"   and yes this worksheet exists in my file
Dim servicesRow As Integer       ' = 22
Dim j as Integer                 ' = 1
Public firstProjectSOF as Range  ' firstProjectSOF.Row = 5
Dim columnTemp As Variant        ' columnTemp(0) = "A"
Public lastProjectSOF as Range   ' lastProjectSOF.Row = 65
Dim Rng as Range                 ' Rng.Column = 17



For j = 1 To numEmployees

    With Sheets("SOF").Range("E5", Range("E5").End(xlToRight))       'Finds the cell in SOF of that employee's last name
        Set Rng = .Find(What:=employees_lastName(j), _
                    LookIn:=xlValues, _
                    LookAt:=xlPart, _
                    SearchOrder:=xlByColumns, _
                    SearchDirection:=xlNext, _
                    MatchCase:=False)
    End With
    'This is where the error 1004 occurs, on trying to write the VLOOKUP formula into the cell

    Sheets(templateName).Range(Cells(servicesRow + 1 + j, 5)).FormulaLocal = "=VLOOKUP($G$10,'Staff Output Final'!B" & firstProjectSOF.Row & ":" _
    & columnTemp(0) & lastProjectSOF.Row & "," & (Rng.Column - 1) & ",FALSE)"
Next

有關信息,如果它是相關的,我的電腦是來自加拿大的Mac(英語),但我最近在法國的PC電腦上編輯了該文件(使用法語操作系統)。 為了防止出現問題,我只是嘗試在我的Mac上創建一個新的excel文件,然后將舊文件中的選項卡復制並粘貼到新文件中,但我仍然收到錯誤1004 ...

謝謝你的幫助! 非常感激!

事實上,我只是偶然嘗試了一些東西並且它有效....我刪除了Range,然后離開了Cells部分,所以代碼變為:

Sheets(templateName).Cells(servicesRow + 1 + j, 5).FormulaLocal = "=VLOOKUP($G$10,'Staff Output Final'!B" & firstProjectSOF.Row & ":" _
& columnTemp(0) & lastProjectSOF.Row & "," & (Rng.Column - 1) & ",FALSE)"

我不太清楚為什么會這樣,但它確實......

有誰知道為什么??? 由於在相同的代碼中更高,我使用以下代碼將VLOOKUP公式分配給另一個單元格,並且它使用“Range”沒有問題。

Sheets(templateName).Range("A18:H18").FormulaLocal = "=VLOOKUP($G$10,'PEIINV2 - paste here'!B" & firstProjectPEIINV.Row & ":AH" & lastProjectPEIINV.Row & _
",2,FALSE)"
Sheets(templateName).Range(Cells(servicesRow + 1 + j, 5))

您的起始代碼在單元格(...)之前缺少工作表(templatename),因此如果活動表格不是templateName,則可能會觸發錯誤。

您可能還想要改變

With Sheets("SOF").Range("E5", Range("E5").End(xlToRight))   

With Sheets("SOF").Range("E5", sheets("SOF").Range("E5").End(xlToRight))   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM