[英]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.