2017-12-02 13 views
-1

VBAコードでExcelでコマンドボタンをクリックして2番目の関数を追加すると、最初の関数はワークシート1(注文フォーム)のデータをワークシート2のデータベースログに入力します。注文フォームからセル値を使用して自動保存するために実行される第2の機能を探します。ありがとうございました!Vba Excelでコマンドボタンでセル値として自動保存する方法?

Private Sub CommandButton1_Click() 
    Dim OrderDate As String, PONumber As String, Vendor As String, ShipTo  As String, SKU As String 
    Dim R As Long, LastSKURow As Long, NextDBRow As Long, OFrm As Worksheet, DB As Worksheet 
    Set OFrm = Worksheets("Order Form 1") 
    Set DB = Worksheets("Database") 
    OrderDate = OFrm.Range("B3") 
    PONumber = OFrm.Range("D3") 
    Vendor = OFrm.Range("B7") 
    ShipTo = OFrm.Range("D7") 
    LastSKURow = OFrm.Cells(OFrm.Rows.Count, "F").End(xlUp).Row 
    For R = 3 To LastSKURow 
     SKU = OFrm.Range("F" & R).Value 
     NextDBRow = DB.Cells(DB.Rows.Count, "A").End(xlUp).Row + 1 
     DB.Range("A" & NextDBRow).Value = OrderDate 
     DB.Range("B" & NextDBRow).Value = PONumber 
     DB.Range("C" & NextDBRow).Value = Vendor 
     DB.Range("D" & NextDBRow).Value = ShipTo 
     DB.Range("E" & NextDBRow).Value = SKU 
    Next R 
    Application.ScreenUpdating = False 
    Dim Path As String 
    Dim filename As String 
     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, 
     Path = "C:\PDF\" 
     filename = OFrm.Range("D3") 
     OFrm.SaveAs filename:=Path & filename & ".pdf", FileFormat:=xlPDF 
     OpenAfterPublish:=False 
    Application.ScreenUpdating = True 
End Sub 

答えて

0

自動保存では、Excelブックを保存することを意味しますか?もしそうなら、あなたは、これはあなたが、それは数日かかった

+0

マイク、感謝を!自動保存では、現在の注文フォームワークシート(OFrm)を、ワークシートに表示されるコマンドボタンをクリックして、事前に指定したC:ドライブの場所に保存したいと思っています。さらに、ワークシートに表示されるセルの値として保存するファイル名を探しています。あなたができることを教えてください!コードは上記の私の前の投稿に記載されています。ありがとうございました! –

0

申し訳ありませんが...私に知らせてください探しているものではない場合、私はかなりしてきた...

Application.ActiveWorkbook.Save 

をこのような何かを追加することができます忙しい。

私が書いたこのサブルーチンはあなたの問題を解決するはずです。私はあなたのフォームに印刷領域を設定したという前提で、ファイルをpdf形式で保存することを選択しました。私はあなたがそれがオーダーフォームであり、フォームは後で編集されないということを述べたのでpdfを選んだ。私はそれがフォームであり、ワークシートを切り離した場合にはうまくいかない別のシートにいくつかの計算フィールドが添付されている可能性があるので、私はそれを選択しました。ただし、ワークシートのコピーがほしいと思ったら、そのコードも含めてください。あなたがする必要があるのは、コメントを記入してこの機能をコマンドボタンに付けることだけです。これを行う方法に関する追加情報をご希望の場合はお知らせください。 PDF機能については

あなたはここで情報を見ることができます: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/workbook-exportasfixedformat-method-excel

を保存するための情報として、あなたがここで情報を見ることができます:あなたのフィードバックのためのhttps://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-saveas-method-excel

Public Sub savefile() 

Dim wb As Workbook 
Dim ws As Worksheet 
Dim rngfilename As Range 
Dim strSavePath As String 

'assumptions: 
'you are saving the file to a fixed location and the name of the file within the range is continually changing 
'you have set the print areas 

Set wb = Application.ActiveWorkbook 
Set ws = wb.ActiveSheet 
Set rngfilename = ws.Range("A1") 'the range that contains your filename 
strSavePath = "C:/" 'the location that you would like to save your file 

'ensure that there is a value within the filename field declared above 
If rngfilename.Value = "" Or Len(rngfilename) = 0 Then 
    MsgBox "You have not entered a filename" 
    Exit Sub 
End If 

'if you do not have print areas set ignore print areas to true in the function bellow 
ws.ExportAsFixedFormat xlTypePDF, strSavePath & rngfilename.Value, xlQualityStandard 
'for the save as function 
'ws.SaveAs strSavePathe & rngfilename.Value 
End Sub 
関連する問題