簡體   English   中英

VBA#值! VBA功能錯誤

[英]VBA #value! error in VBA function

因此,我嘗試在VBA中編寫一個函數,該函數將在另一個電子表格中讀取單元格(CE4)的值,如果該值等於“拒絕”,則它將連續讀取CE5的值,直到達到CE列中值“已批准”的單元格,此時它將輸出同一行(B列)中另一個單元格的值。 想法是,我將在公式中輸入起始單元格的單元格引用,如果CE的初始值為“拒絕”,則將執行上述過程I,否則將在B列中輸出對應單元格的值我有以下代碼:

Function transfer(ApplicationCell As String, ConditionCell As String) As String

Dim i As Integer

i = 1
With Worksheets("Application Report")
    If .Range(ConditionCell).Value = "Denied" Then
        Do While .Range(ConditionCell).Value = "Denied"
            .Range(ConditionCell).Value = .Range(ConditionCell).Offset(i, 0).Value
            .Range(ApplicationCell).Value = .Range(ApplicationCell).Offset(i, 0).Value
            i = 1 + 1
        Loop
    End If
    transfer = .Range(ApplicationCell).Value
End With

End Function

ApplicationCell的初始值為B4,ConditionCell的初始值為CE4。 但是,每當我嘗試將值輸入到函數中時,都會得到#VALUE!。 我知道我做錯了事,但是我是VBA的新手,所以我不確定自己要去哪里。 任何幫助,將不勝感激!

您可以始終使用Worksheet_Change事件來處理您的更新。

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim i As Integer
    Dim ApplicationCell As Range, ConditionCells As Range
    Set ApplicationCell = Range("B4")

    Application.EnableEvents = False
    If Not Intersect(Target, ApplicationCell) Is Nothing Then
        i = 1
        Set ConditionCells = Worksheets("Application Report").Range("CE4")

        Do While ConditionCells.Value = "Denied"
            ConditionCells.Value = ConditionCells.Offset(i, 0).Value
            ApplicationCell.Value = ApplicationCell.Offset(i, 0).Value
            i = 1 + 1
        Loop

        Worksheets("???").Range("???") = ApplicationCell.Value

    End If
    Application.EnableEvents = True
End Sub

暫無
暫無

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

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