Announcement

Collapse
No announcement yet.

Wert aus Excel für weitere Berechnungen auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wert aus Excel für weitere Berechnungen auslesen

    Hallo zusammen,

    ich bin dabei einen Programmcode zu erstellen, der unter anderem, unter bestimmten Umständen, eine bestimmte Zelle aus einem Excel Sheet auslesen und die Zahl aus der Zelle als Variable in eine Funktion einfügen soll.
    Ich habe verschiedene Materialien gegeben, die in meiner über den Block UI Styler (Siemens NX) erstellten Benutzeroberfläche ausgewählt werden können. Je nachdem welches Material ausgewählt wurde, soll aus einem Excel Sheet der zugehörige E-Modul ausgelesen und in meine Rechenformel eingefügt werden.
    Mein Code zum Auslesen der Excel Werte sieht im Moment folgendermaßen aus:

    Imports Microsoft.Office.Interop.Excel
    Private Shared FlexMod As Double = Nothing 'FlexMod ist meine Variable, die in die Berechnung eingefügt werden soll

    Function InsertFlexMod()

    If enum0.ValueAsString = "QK003951L >PP+EPDM<" Then 'bezieht sich auf das Material-Auswahlfeld in meiner Benutzeroberfläche

    Dim objExcel = CreateObject("Excel.Application")
    Dim objWorkbook = objExcel.Workbooks.Open(MaterialProperties) 'öffnet das Excel Sheet (Pfad habe ich definiert)
    Dim colData As String = Nothing

    Do
    i = i + 1
    objExcel.Cells(i, 4).Value = colData 'Der zum oben genannten Material gehörige E-Modul steht in Spalte 4, Zeile 5
    Loop Until colData = "PP+EPDM" 'PP+EPDM ist das ausgewählte Material wie es im Excel Sheet heißt

    If colData = "PP+EPDM" Then

    FlexMod = objExcel.Cells(i, 4)
    End If
    End If
    End Function

    Das Programm soll im Grunde nach der Bezeichnung "PP+EPDM" im Excel Sheet (Spalte 1) suchen und, wenn diese gefunden wurde, in derselben Zeile, allerdings in Spalte 4 statt 1, den E-Modul auslesen.
    Kann mir einer von euch sagen, ob mein Vorgehen sinnig ist, und ob der Code so stimmt? Mein Programm produziert keinen Fehler, rechnet aber leider auch nicht mit der ausgelesenen Variable und ich habe keine Ahnung warum ...
    Ich bin für jede Hilfe dankbar!!

    Viele Grüße,
    Laura

  • #2
    Ich bin kein VB Spezialist, aber ich würde einfach mit Suchen arbeiten:
    Code:
        Cells.find(What:="PP+EPDM", After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Activate
    Ggf. andere Suchoptionen, Teilbereich usw. verwenden.
    Dann in der gleichen Zeile auf die gewünschte Zelle springen bzw. die auslesen
    Und dann noch die Rückgabe des Wertes überdenken.
    Funktioniert das?
    Wenn es eine Funktion ist, wieso nimmst Du nicht den Funktionswert?
    Gruß, defo

    Comment

    Working...
    X