Ich habe eine Arbeitsmappe (nennen wir es Arbeitsmappe A):vba Wert von geschlossener Arbeitsmappe erhalten?
Wenn Zelle C5 Änderungen, die ich möchte, dass meine geschlossenen Arbeitsmappe (2017 Planner) und nach unten schauen Spalte K. Wenn der Wert in Spalte K suchen in Planer passt mit dem in Zelle C5 Ich möchte den Wert in einer Nachricht anzeigen.
Im Moment bin ich immer eine 0
Bitte kann mir jemand zeigen, wo ich falsch gehe?
-Code (von this answer genommen):
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wbPath As String, wbName As String
Dim wsName As String, cellRef As String
Dim Ret As String
If Not Intersect(Target, Target.Worksheet.Range("C5")) Is Nothing Then
'wbPath = "C:\Documents and Settings\Siddharth Rout\Desktop\"
wbPath = "G:\BUYING\Food Specials\2. Planning\1. Planning\1. Planner\8. 2017\"
wbName = "2017 Planner.xlsx"
wsName = "Planner"
cellRef = "K:K"
Ret = "'" & wbPath & "[" & wbName & "]" & _
wsName & "'!" & Range(cellRef).Address(True, True, -4150)
MsgBox ExecuteExcel4Macro(Ret)
End If
End Sub
EDIT:
Dank @MacroMarc für seine Hilfe bei der Code so weit. Ich habe immer noch einige Probleme mit dem Code.
Meine Nummer in der Zelle C5 in Arbeitsmappe A 113545.
Diese Zahl in Spalte K in Zeile 4 in meinem Planer Arbeitsmappe vorhanden ist.
Das Nachrichtenfeld, das ich bekomme, sagt mir, dass es C11 sucht. Aber ich bin mir nicht sicher warum? Es sollte in Spalte K suchen: K? Sollte es nicht?
Es wird auch Value nicht gefunden.
Ich brauche das Meldungsfeld, um mir die Zelladresse des passenden Wertes in K4 zu zeigen.
nicht direkt, aber man konnte eine Verschachtelungsebene durch den Zustand invertiert und tun 'Beenden Sub' entfernen zu bail out, anstatt den ganzen Körper in einen 'If ... End If'-Block zu wickeln. –
Zeigt 'MsgBox Dir (wbPath & wbName)' nichts an? –
Sie versuchen, den Wert einer ganzen Spalte zu erhalten. Vorausgesetzt, die Datei existiert, wird Sie das wahrscheinlich nicht bekommen, was Sie erwarten. 'Ret' wird einen Wert von einer Zelle in diesem Bereich enthalten. Wenn Sie ** einen Wert ** suchen möchten, müssen Sie eine * Lookup * -Funktion verwenden. –