Вы задаете 2 With
операторов: 1. With Sheet2
2. With PicFile
один внутри другого, даже если они не подключены или не нужны.
Вторая часть, If .Range("B3").Value = False Then .Range("M" & Sheet2.Range("B2").Value).Value = .Range("R11").Value
, скорее всего, связана с объектом Sheet2
, поэтому она должна находиться внутри оператора With Sheet2
, поэтому, как писал @JNevill в своем комментарии, вам нужно переместить End With
после этой строки.
Дополнительные пояснения в комментариях к коду ниже:
Модифицированный код
Sub Cont_attachthumb()
Dim PicFile As FileDialog
Set PicFile = Application.FileDialog(msoFileDialogFilePicker)
With PicFile
.Title = "Select A Content Picture"
.Filters.Add "All Picture Files", "*.jpg, *jpeg, *.gif, *.png, *bmp", 1
If .Show <> -1 Then GoTo NoSelection
Sheet2.Range("R11").Value = .SelectedItems(1) 'Put File Name in R11
End With
With Sheet2
If .Range("B3").Value = False Then .Range("M" & .Range("B2").Value).Value = .Range("R11").Value
' moved this ^ row above the End With
End With
Cont_displaythum ' <-- I hope this is a Sub defined somewhere else
NoSelection:
End Sub