2014-09-24 99 views
1

因此,我已经使用CSV文件导出数据,但截至目前它只是原始数据。我正在尝试dsiplay它来自的文件名和表名。这是我迄今从导出数据的代码。下面的宏从一个打开的Excel工作表导出数据,我只是运行宏并将数据导出到一个新的工作簿中。现在我只想显示从我创建的新CSV文件中导出的源文件名和表名。将数据导出到CSV文件并检索文件名

子testexport()

' export Macro 

Range("B7:E26,B39:E138").Select 
Selection.Copy 
Workbooks.Add 
ActiveSheet.Paste 
ActiveWorkbook.SaveAs Filename:= _ 
"Y:\SQCData.csv" _ 
, FileFormat:=xlCSV, CreateBackup:=False 
Application.DisplayAlerts = False 
ActiveWorkbook.Activate 
Application.DisplayAlerts = True 

以下范围,它显示包含我的数据。现在我的问题是...如何在导出后在同一张Excel表格上显示文件名称和表格名称?

+0

你是如何命名的CSV导出的文件?它们是基于sheetname吗? – 2014-09-24 14:24:07

+0

种类,我想获得工作簿名称以及顶部列中的工作表名称,然后显示数据。 – adit123 2014-09-24 14:29:07

回答

0

你可以调整这个

Sub CopyPasteBetween2Books() 

Dim wb As Workbook 

    ThisWorkbook.Sheets(1).Range("B7:E26,B39:E138").Copy 
    wbname2 = ThisWorkbook.Name 
    wsname2 = ActiveSheet.Name 
    Workbooks.Add 
    ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range("A1") 
    wbname = "Y:\SQCData.csv" 
    ActiveWorkbook.SaveAs wbname 
    Set wb = Workbooks.Open("Y:\SQCData.csv") 
    wb.Activate 
    ActiveCell.Offset(0, 8).Value = wbname2 
    ActiveCell.Offset(0, 9).Value = wsname2 


    Application.CutCopyMode = False 
End Sub 
+0

我试过这段代码,它只显示新创建的工作簿名称和工作表。对不起,我应该澄清,我想从我从中导出的工作簿的工作簿名称和工作表名称。 – adit123 2014-09-24 14:41:15

+0

谢谢你的答案! – adit123 2014-09-24 14:44:46

+0

@ adit123编辑代码以获取源工作簿/工作表名称 – mrbungle 2014-09-24 14:55:20

0
Sub GetFileNameandSheet() 

' assign variables 
Dim strFolder As String 
Dim strFile As String 
Dim latestFile As String 
Dim dtLast As Date 

strFolder = "C:\MyFolder\"   ' sets search path - put the directory where you saved the file here - enclose in quotes 
strFile = Dir(strFolder & "\*.xls*", vbNormal) ' looks for ,csv files only 

' This loops through files to find latest modified date 
    Do While strFile <> "" 
     If FileDateTime(strFolder & strFile) > dtLast Then 
      dtLast = FileDateTime(strFolder & strFile) 
      latestFile = strFolder & strFile 
     End If 
     strFile = Dir 
    Loop 

' The following will write the latest file name and sheet to 2 cells on the active sheet 
Range("XX") = latestFile   ' writes the latest .csv file name in your folder - substitute the cell location were you want the data 
Range("XY") = ActiveSheet.Name 'writs the Active Sheet name 

End Sub 
+0

谢谢你的回答。对不起,我应该澄清,我想显示我从CSV文件导出的工作簿的工作簿名称和工作表名称。 – adit123 2014-09-24 14:44:07