2012-03-27 7 views
3

Je suis en train d'enregistrer un fichier Excel via VB 2010, et j'ai ces questionsComment enregistrer un fichier Excel via VB 2010 sans dialogues (tels que « Enregistrer sous »)

  1. Comment puis-je désactiver la boîte de dialogue "enregistrer sous" J'ai essayé des choses telles que "enregistrer" au lieu de "enregistrer sous", mais cela ne fonctionne pas ...

  2. Après avoir enregistré le fichier (en utilisant l'enregistrer sous) je ne peux pas le supprimer ... (J'ai essayé de fermer le fichier Excel, Visual Basic etc ...) tout ce que je reçois est une erreur en disant qu'il est déjà ouvert dans Excel ...

  3. Y at-il un moyen de faire VB montrer les conseils pour l'écriture de la excel choses (. Ie - quand j'écris messagebox - il apparaît "Show" pour aider comment puis-je activer ce pour le code Excel. [worksheets.cells ect..])

la connexion:

Sub Connect() 
    ' Connect to the excel file 
    oExcel = CreateObject("Excel.Application") 
    'Devine the workbook 
    oBook = oExcel.workbooks.open("e:\Words\Heb.xls") 
End Sub 

les saveas:

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click 
    oExcel.SaveAs(oExcel.Path & ".xls") 
End Sub 

Merci beaucoup

+0

Utilisez-vous Visual Studio ou Excel VBA? – brettdj

+0

Studio visuel ... –

Répondre

2

Vous devez enregistrer le classeur. par exemple. oBook.Save.

Si vous créez un nouveau fichier, vous devrez utiliser SaveAs avec un nom de fichier valide afin de l'enregistrer la première fois.

+0

+1 Cela devrait être – brettdj

4

Je pense que Inafiziger a résolu votre problème principal, il devrait être une vanille Save.

Comme il était clair pour moi exactement ce que vous êtes doind (c.-à Visual Studio/VB/BA) puis

On (1)

Je pensais qu'il convient de préciser que vous pouvez utiliser le code intérieur le module ThisWorkbook pour détecter et gérer un SaveAs si vous offrez un choix aux utilisateurs. Cet événement détecte la SaveAs et annule

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    If SaveAsUI Then 
     MsgBox "You cannot use SaveAs to save this file", , "Save Cancelled!" 
     Cancel = True 
    End If 
End Sub 

Ce code peut être ajouté à votre programme classeur cible mais je vous doute auriez besoin de recourir à ce étant donné que vous devriez être en mesure d'exécuter le Save simple.

On (3)

Vous devez utiliser Early Binding pour obtenir le bénéfice de intellisense. Vous utilisez actuellement la liaison tardive avec oExcel = CreateObject("Excel.Application"). Une approche couramment utilisée consiste à écrire le code et à le faire fonctionner avec une liaison anticipée, puis à le convertir en liaison tardive pour la publication du code final. (Voir le commentaire en bas) peut être utilisé pour basculer entre les deux méthodes de liaison dans le même code.

+0

+1 pour les détails supplémentaires! – lnafziger

Questions connexes