Ich versuche, von VBA zu VSTO zu wechseln, aber ich habe einige Fehler, die ich nicht kenne, wenn ich versuche, eine Größe zu ändern.VSTO: Excel Größenänderung in vb.net
Ich habe den Code unten, der am Ende in der Lage sein sollte, einen Bereich von Zellen in x Zeilenanzahl aufzuteilen.
Ich habe das Projekt in VSTO als Add-In erstellt. Wenn ich den Code ausführe, indem ich die Schaltfläche in Excel drücke, gibt Visual Studio mir eine "COMExeption wurde von Benutzercode nicht behandelt" und es markiert die letzte Zeile, wo ich versuche, die Größe zu ändern und den Bereich auszugeben.
Was mache ich falsch?
Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs) Handles Button1.Click
Dim sheet As Excel.Worksheet = Globals.ThisAddIn.Application.ActiveSheet
Dim inputrange As Excel.Range
'Dim cell As Excel.Range
Dim numberOfOutputRows As Long
Dim numberOfOutPutColumns As Long
Dim outputRange As Excel.Range
Dim inputArray(0, 0) As Long
Dim i As Long
Dim iRow As Long
Dim iCol As Long
Dim numberOfCells As Long
Dim arrayInputValue As Excel.Range
Dim val As Object
inputrange = CType(sheet.Application.InputBox("select range",,,,,,, Type:=8), Excel.Range)
'Dim myRange As Excel.Range
numberOfOutputRows = InputBox("You have " & inputrange.Count & " cells. Enter the number of rows you want to split up in")
numberOfOutPutColumns = inputrange.Cells.Count/numberOfOutputRows
outputRange = CType(sheet.Application.InputBox("Output to single cell",,,,,,, Type:=8), Excel.Range)
inputrange = inputrange.Columns(1)
ReDim inputArray(0 To numberOfOutputRows, 0 To numberOfOutPutColumns + 1)
numberOfCells = inputrange.Cells.Count - 1
For i = 0 To numberOfCells
arrayInputValue = CType(inputrange.Cells(i + 1), Excel.Range)
val = arrayInputValue.value()
iRow = i Mod numberOfOutputRows
iCol = Int(i/numberOfOutputRows)
inputArray(iRow + 1, iCol + 1) = val ' arrayInputValue
Next i
outputRange.Resize(RowSize:=UBound(inputArray, 1), ColumnSize:=UBound(inputArray, 2)).Value = inputArray
Vielen Dank. Es sieht so aus, als hätte ich auch noch ein paar andere Probleme, da ich einige der Werte im InputArray verloren habe. Kannst du mir dabei helfen? – Jmorte13
Es sollte genauso funktionieren wie es in VBA funktioniert. Hast du es in VBA versucht (mit ein paar leichten Änderungen)? Sie wissen, dass Sie Ihren Code in Visual Studio debuggen können und sehen, was genau in Ihrem Array geschrieben wird, richtig? Ich habe nicht versucht, es zu sein, lassen Sie mich wissen, wenn Sie es nicht herausfinden können und ich werde versuchen, Ihnen zu helfen – PetLahev
Ich habe es in VBA versucht und es funktioniert perfekt. Ich habe ein paar leichte Modifikationen. Ich bin nicht vertraut mit dem Debuggen Visual Studio, wie ist das gemacht? Ich werde den VBA-Code hier einfügen, aber ich habe nicht genug Zeichen. – Jmorte13