Beliebt

Fehler beim Erstellen einer Form in VBA - Microsoft-Excel, VBA, Formen

Ich versuche, eine Form in einem Bereich zu erstellen, der in einer Zelle A1 angegeben ist. Zum Beispiel, wenn Text in Zelle A1 ist "B5:D7" dann erstellt makros eine form auf B5:D7 mit dem folgenden Code:

Sub CreateShape()
Dim myRng       As Range
Dim sh          As Object
Dim rngPath     As String

rngPath = Range("A1").Value

Set myRng = Range(rngPath)
Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 1, 1, 1, 1)

With sh
.Left = myRng.Left
.Top = myRng.Top
.Width = myRng.Width
.Height = myRng.Height
.Fill.Visible = msoFalse
.Line.ForeColor.RGB = RGB(0, 0, 0)
End With

End Sub

dies gibt aber einen fehler falls ganze zeile oder ganze spalte oder gro├čer bereich gef├Ąllt "B2:B1048576" wird gestellt. Kann mir bitte jemand bei der ├änderung dieses Codes helfen?

Ich habe es bereits versucht ActiveWindow.VisibleRange.Height und Worksheet.UsedRange.Height In beiden F├Ąllen erhalte ich eine kleinere Schachtel, die nicht das gesamte Sortiment darstellt.

Danke vielmals.

Antworten:

0 f├╝r Antwort Ôäľ 1

Ihr Fehler w├╝rde in dieser Zeile auftreten:

.Height = myRng.Height

Das Problem ist, dass Sie versuchen, die einzustellen Height Eigenschaft mit einem Wert, der das Maximum durch VBA ├╝bertrifft.

Beide Height und Width Eigenschaften einer Form haben eine max 169056 Punkte; Ein Punkt ist gleich 1 / 72inch, so w├╝rde das Maximum ungef├Ąhr 2348inch oder 5965.23cm entsprechen.

Solange der von Ihnen angegebene Bereich diese H├Âhe oder Breite nicht ├╝berschreitet, wird der Code NICHT fehlerfrei angezeigt. Sobald der angegebene Bereich gr├Â├čer ist, wird der Code fehlerfrei.

Hinweis: Sie k├Ânnen die Form manuell gr├Â├čer ziehen, als Sie die Eigenschaft ├╝ber VBA festlegen k├Ânnen. Dadurch werden die Abmessungen auf der Registerkarte Format> Gr├Â├če jedoch nicht vergr├Â├čert!