![](/img/trans.png)
[英]Get a cell value from a different worksheet in Excel to use it in VBA?
[英]Excel VBA: Worksheet Change cell value to different sheet
我已經為此工作了一段時間,遇到了一個真正的絆腳石。
我有一組值,這些值可通過工作表3的D列中的經過驗證的下拉菜單獲得。一旦選擇此值,當前將使用excel函數='工作表3'!D4等顯示在其他工作表(工作表7)中,等等。我有一些讀取此代碼並執行IF語句以在另一個單元格中產生值的代碼。
我的問題是代碼取決於讀取值而不是公式。
我目前有一個要運行的單獨函數的工作表更改命令,有沒有辦法讓它運行第二個函數,並從工作表3列D到工作表8列D調用任何更改,然后運行我的其他更改函數?
表格7的代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Intersect(Target, Range("D2:D102")) Is Nothing Then Exit Sub
Application.EnableEvents = False
On Error GoTo Finalize
For Each c In Target.Cells
Select Case c.Column
Case 4
Call Print_Quality(c)
End Select
Next c
Finalize:
Application.EnableEvents = True
End Sub
工作表7模塊:
Sub Print_Quality(c As Range)
Dim PrintQuality As String
Dim PrintSpeed As String
PrintQuality = c.Value
If PrintQuality = "A Quality 1" Then PrintSpeed = "100"
c.Offset(0, 5).Value = PrintSpeed
End Sub
我一直在嘗試這條路線,但無濟於事:
工作表3的代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D4:D104")) Is Nothing Then Exit Sub
Application.EnableEvents = False
On Error GoTo Finalize
UpdateVal
Finalize:
Application.EnableEvent = True
End Sub
模塊:
Sub UpdateVal()
Worksheets("Sheet 7").Range("D2").Value = Worksheets("Sheet 3").Range("D4").Value
End Sub
非常感謝
索德斯法律,我在絕望后的一個小時內設法解決了這個問題。
我完成了另一個工作表的更改(從工作表3調用)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("D4:D104")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
Call UpdateVal
End If
End Sub
然后將此功能添加到模塊中
Sub UpdateVal()
Sheet8.Cells(2, 4).Value = Sheet3.Cells(4, 4)
End Sub
現在,它引用了工作表8中下拉菜單的值,並允許其他功能繼續使用單元格值
您是否嘗試單步執行代碼以查看問題所在? 並非如此,我建議在每個模塊的開頭放置一個休息時間,然后使用F8逐步執行。 這將確認它正在正常運行。
您還應該完全限定對工作表的引用。 盡管假定工作表引用位於工作表模塊中,但應該可以進行工作表引用,但存在失敗的機會。 您可以簡單地分配一個變量來保存工作表,如下所示:
Dim wb as Workbook
Dim ws as Worksheet
Set wb = ThisWorkbook
Set ws = wb.Sheets("YourSheetName")
此外,您的工作表3代碼:EnableEvent = True
應該是:EnableEvents = True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.