Я бы хотел, чтобы мои значения увеличивались на следующем листе на 1 после выполнения кода на активном листе.
Ситуация выглядит следующим образом: Publi c Sub ResizeCiv2 ()
Dim targetSheet As Worksheet
Dim targetRange As Range
Dim targetShape As Shape
' Define the sheet that has the pictures
Set targetSheet = ThisWorkbook.ActiveSheet
' Define the range the images is going to fit
Set targetRange = targetSheet.Range("C3:K24")
' Loop through each Shape in Sheet
For Each targetShape In targetSheet.Shapes
' Check "picture" word in name
If targetShape.Name Like "*Picture*" Then
' Call the resize function
SizeToRange targetShape, targetRange
End If
Next targetShape
Call CivBox
Call Divider
ActiveSheet.Range("M15").Value = Range("D52")
With Sheets("Cables 1").Range("C50:C51")
.Value = .Value + 1
End With
End Sub
И теперь отладчик выделяет .Value = .Value + 1
, говоря, что это несоответствие типов.
Это мой активный лист с одним изображением. Согласно приведенному выше коду, я собираюсь иногда добавлять еще одну картинку. Если это так, мне нужно увеличить значение на 1 на следующем листе ...
Если я не могу сделать это ни с помощью оператора With
или с Sheet("Cables 1").Range("C50").Value = Range("C50").Value + 1
есть ли возможность запустить его?
Возможно, это связано с этим запросом: Как мне упростить или l oop excel vba код для обмена данными на разных листах?
ОБНОВЛЕНИЕ:
Я нашел какое-то решение здесь:
Увеличение значений ячеек в диапазоне на 1 с VBA Excel
и попробовал с моим кодом ...
Public Sub ResizeCiv2()
Dim targetSheet As Worksheet
Dim targetRange As Range
Dim targetShape As Shape
Dim rng As Range
Set rng = Sheets("Cables 1").Range("C50:C51")
' Define the sheet that has the pictures
Set targetSheet = ThisWorkbook.ActiveSheet
' Define the range the images is going to fit
Set targetRange = targetSheet.Range("C3:K24")
' Loop through each Shape in Sheet
For Each targetShape In targetSheet.Shapes
' Check "picture" word in name
If targetShape.Name Like "*Picture*" Then
' Call the resize function
SizeToRange targetShape, targetRange
End If
Next targetShape
Call CivBox
Call Divider
ActiveSheet.Range("M15").Value = Range("D52")
Dim myCell As Range
With rng
myCell = myCell + 1
End With
End Sub
Теперь отладчик говорит: Переменная объекта или переменная не установлена
Когда Я контролирую строку myCell с Value = .Value + 1
, затем получаю ошибку: Несоответствие типов