Вам просто нужно заключить в одинарные и, возможно, двойные кавычки.
Если аргумент - цифра c (например, 1), используйте
.OnAction = "'SubName 1'"
Если аргумент - строка затем используйте
.OnAction = "'SubName ""SomeText""'"
Sub Demo()
Dim i As Long
Dim Arg As Variant
Dim t2 As Range
Dim btn2 As Button
For i = 3 To 4 Step 1
Set t2 = ActiveSheet.Range(Cells(i, LastCol + 3), Cells(i, LastCol + 3))
Set btn2 = ActiveSheet.Buttons.Add(t2.Left, t2.Top, t2.Width, t2.Height)
Arg = i '<~~ adjust to suit your needs
With btn2
.Caption = "View " & i
.Name = CStr(i)
If IsNumeric(Arg) Then
.OnAction = "'Sheet1.btnT " & Arg & "'"
Else
.OnAction = "'Sheet1.btnT """ & Arg & """'"
End If
End With
Next i
End Sub
Sub btnT(Arg As Variant)
MsgBox Arg
End Sub