Hola, podría ser algo así:
Código vb.net:
Ver originalPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rpt As New ReportDocument()
rpt.Load("C:\CrystalReport1.rpt") 'ruta de tu reporte
rpt.SetDataSource(origen_de_datos) 'origen de datos del reporte (dataset, datatable, generic, etc)
Dim sfd As New SaveFileDialog() 'Cuadro de dialogo para elegir la ruta donde se guardará el archivo
sfd.ShowDialog() 'mostrar el cuadro de dialogo
rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, sfd.FileName) 'Indicamos el formato y la ruta a guardar
MessageBox.Show("Exportación ok!")
End Sub
Eso sería para Crystal Reports, para Reporting Services no tengo el código de memoria, pero te dejo este
link que puede ayudarte.