En mi código utilizo la función dir( ) para revisar si existe la carpeta.
arch = Dir(carpetaInicial & "*" & num, vbDirectory)
En tu código, la variable ruta4 no es necesaria, porque estás utilizando esto para revisar si existe la carpeta:
Set Carpeta = CreateObject("Scripting.FileSystemObject")
If Carpeta.FolderExists(ruta3) Then
Lo siguiente debería funcionar para lo que necesitas:
Sub GUARDAR()
Dim num As Variant
Dim Carpeta As Object
Dim base2 As String, Namek As String
Dim ruta As String, ruta3 As String
'Ambiente
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'
ruta = Environ("USERPROFILE") & "\Dropbox\TODAS\"
num = Sheets("Ficha").Range("F2").Value
'datos para la carpeta
base2 = Cells(4, "F") & " " & Cells(4, "G") & " " & Cells(4, "C") & " " & Cells(4, "D") & "-" & num
ruta3 = ruta & base2
'Folder crear o encontrar
Set Carpeta = CreateObject("Scripting.FileSystemObject")
If Carpeta.FolderExists(ruta3) Then
MsgBox "ENCONTRADO.", vbInformation, "Kutools for Excel"
Else
Carpeta.CreateFolder (ruta3)
MsgBox "CREADA.", vbInformation, "Kutools for Excel"
End If
'nombre del archivo
Namek = num & ("-") & Format(Now, "ddmmyyyy")
'Exportar archivo
Sheets("PDF").ExportAsFixedFormat xlTypePDF, ruta3 & "\" & Namek & ".pdf", xlQualityStandard, True, False, , , False
Sheets("Ficha").Select
End Sub