2017-08-21 10 views
0

添付の図を参照してください。私は列 "Total Qty"のデータを別のワークブックにコピーし、そのファイル名を出荷IDとして指定して特定のフォルダに保存する必要があります。これで私はそのファイルを思い出し、そこから別の列にデータを取得します。関数を使用してデータを別のワークブックにエクスポートする方法

enter image description here

私はつまり、私は、ファイルを特定のフォルダに存在しているか否かをチェックしたい、これにさらに何かを追加する必要があります。ファイルが存在する場合は、ファイルを更新する必要があります。ファイルが存在しない場合は、「Total Qty」列を使用してファイルを作成します。

私は以下のコードを書いています。それは "total qty"という列に "=(G2 + H2)"という関数を与えるまで働いていました。関数を与えた後、目的ファイルはセルに "=(#REF!+#REF!)"と表示されます。

Sub Export_Total_Qty() 

    Application.ScreenUpdating = False 
    Dim FilePath As String 
    Dim ID As String, abc 

    Const FILE_INFO As String = "D:\Excel Software\Shipment Tracking\Junk\<id>.xlsx" 

    ID = Worksheets("Sheet1").Cells(1, "O").Value 

    abc = Replace(FILE_INFO, "<id>", ID) 

    FilePath = "" 
    On Error Resume Next 
    FilePath = Dir(abc) 
    On Error GoTo 0 
    If FilePath = "" Then 


     Sheets("Sheet1").Range("I2:I50").Copy 
     Workbooks.Add 
     ActiveSheet.Paste Destination:=Range("A1") 
     ActiveWorkbook.SaveAs _ 
     Filename:=abc 

     MsgBox "New Entry is created, Thak you", vbInformation, "Kutools for Excel" 
    Else 
     Sheets("Sheet1").Range("G1:G50").Copy 
     ActiveSheet.Paste Destination:=Range("A1") 
     'ActiveWorkbook.Update _ 
     Filename:=abc 
     MsgBox "successfully Updated", vbInformation, "Kutools for Excel" 
    End If 
    Application.ScreenUpdating = False 


End Sub 
+0

左側の2つの列を参照する列Aに式をコピーすると、自然に文句を言います。代わりに値をコピーするだけでしたか? – YowE3K

答えて

0

問題は、これらの式は、(ソースワークシート内の列が悪い基準となる)を指している環境を終了したときに、あなたの参照が酸っぱい変わるということのようです。特殊文字の貼り付け機能を使用すると、値をコピーするだけを指定できます。 変更するにはActiveSheet.Paste Destination:=Range("A1")ActiveSheet.Range("A1").PasteSpecial Operation:=xlPasteValues

the docs for PasteSpecialがお手伝いします。

私もActiveWorksheet/ActiveWorksheetを使用して、むしろ私は、彼らは単により堅牢であることを経験してきたようなタイプWorksheet/Workbookの新しいオブジェクト変数を導入していないあなたに助言します。

関連する問題