Поскольку вы не получаете никаких ошибок как таковых, я считаю, что код более или менее работает, но вы просто не заметили добавленные вами OLE-объекты.Откройте панель выбора и посмотрите ...
Нажмите в меню Домой , посмотрите под Редактирование группа , нажмите Найти и выбрать кнопку , а затем Панель выбора...
Вы должны увидеть список всех объектов с правой стороны.Держу пари, что там есть куча, если вы сохранили после тестирования.Выбрав их на панели , вы можете заметить, что все они расположены в верхнем левом углу ячейки A1 .
.это всего лишь случай потерянных / скрытых (не очень скрытых) объектов. Думаю, поможет следующий код:
Private Sub CommandButton1_Click()
If Me.TextBox1.Value = vbNullString Then
MsgBox "Please enter the description", vbCritical
Exit Sub
End If
Dim shj As Worksheet
Set shj = ActiveSheet
Dim n As Long
With shj
n = .Range("B" & .Rows.Count).End(xlUp).Row
.Range("B" & n + 1).Value = Me.TextBox1.Value
Dim FName As String
FName$ = Application.GetOpenFilename
Dim OLE As OLEObject
' You need to set the Top/Left Position & Height/Width to put it where you want it
Set OLE = .OLEObjects.Add(Filename:=FName, _
Link:=True, _
DisplayAsIcon:=True, _
Top:=.Range("C" & n + 1).Top, _
Left:=.Range("C" & n + 1).Left, _
Height:=.Range("C" & n + 1).Height, _
Width:=.Range("C" & n + 1).Width)
End With
Unload Me
End Sub