#excel #vba
#excel #vba
Вопрос:
У меня есть коробка, в которой стоит цифра 1:
Поскольку я буду автоматически добавлять новый лист, я хотел бы, чтобы это число увеличилось на 1.
Sub otdr()
Dim i As Long, j As Long, Lastrow As Long
Dim xNumber As Long, yNumber As Long
Dim otdr As Range, desc As Range, fet As Range, boxdesc As Range
Dim xName As String
Dim ws As Worksheet, wk As Worksheet
Dim shp As Shape
Application.ScreenUpdating = False
Set ws = Sheets("OTDR TRACE - 1")
Set wk = Sheets("Fibre drop release sheet")
Set fet = wk.Range("E3")
Set otdr = ws.Range("Q46")
Set desc = ws.Range("B52")
Set boxdesc = ws.Range("B60")
xNumber = Sheets("Frontsheet").Range("D32").Value
Lastrow = wk.Cells(wk.Rows.Count, "E").End(xlUp).Row
For i = 1 To (xNumber - 1)
otdr = "OT " amp; (i 1) amp; " of " amp; Number
desc = fet.offset(1, 1)
ws.Copy After:=ActiveWorkbook.Sheets(ws.Index i - 1)
ActiveSheet.Range("B60").Value = i 1
ActiveSheet.Name = "OTDR TRACE - " amp; i 1
For Each shp In ActiveSheet.Shapes
If shp Like "Rectangle" Then
shp.TextFrame2.TextRange.Characters.Text = boxdesc
End If
Next shp
Next
ws.Activate
otdr = "OT 1 of " amp; Number
Application.ScreenUpdating = True
End Sub
Я получаю сообщение об ошибке:
«Объект не поддерживает это свойство или метод»
с помощью отладчика, указывающего на следующую строку:
If shp Like "Rectangle" Then
Как я могу скопировать прямоугольник на только что скопированный лист с увеличенным номером?
like
Оператор является подстановочным знаком в VBA Excel. Имя моего прямоугольника изначально «Прямоугольник 1». На новом листе он будет изменен на «Прямоугольник 2». Тогда что не так с этим подстановочным знаком?
Ответ №1:
Вы не можете сравнить объект (a Shape Object
) со строкой…
Затем, чтобы заставить Like
оператора работать, вы должны использовать подстановочный знак следующим образом:
If shp.Nme Like "Rectangle*" Then
Или используйте Instr
следующим образом:
If InStr(1, shp.Name, "rectangle", vbTextCompare) > 0 Then
Эта последняя версия также не чувствительна к регистру…