Vba 将数据导出到CSV文件并检索文件名

Vba 将数据导出到CSV文件并检索文件名,vba,excel,export,filenames,export-to-csv,Vba,Excel,Export,Filenames,Export To Csv,因此,我已经使用CSV文件导出了数据,但现在它只是原始数据。我正在尝试显示它来自的文件名和图纸名。这是我的代码,到目前为止还没有导出数据。下面的宏从打开的excel工作表导出数据,我只是运行宏并将数据导出到新工作簿中。现在,我只想在创建的新CSV文件上显示从源导出的文件名和图纸名 子测试导出 ' export Macro Range("B7:E26,B39:E138").Select Selection.Copy Workbooks.Add ActiveSheet.Paste ActiveW

因此,我已经使用CSV文件导出了数据,但现在它只是原始数据。我正在尝试显示它来自的文件名和图纸名。这是我的代码,到目前为止还没有导出数据。下面的宏从打开的excel工作表导出数据,我只是运行宏并将数据导出到新工作簿中。现在,我只想在创建的新CSV文件上显示从源导出的文件名和图纸名

子测试导出

 ' 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工作表上显示文件名和工作表名?

您可以对此进行调整

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
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

如何命名CSV导出的文件?它们基于工作表名称吗?有点像,我想在顶部的列中获取工作簿名称和工作表名称,然后显示数据。我尝试了此代码,它只显示新创建的工作簿名称和工作表。对不起,我应该澄清一下,我想从我导出的工作簿中获取工作簿名和sheetname。顺便感谢您的回答@adit123编辑代码以获取源工作簿/工作表名称此代码存在一些问题。所以我基本上有一个模板工作簿,当你按下模板上的一个对象时,它会打开一个特定的目录。然后,选择要从中导出数据的excel文件,然后按功能区上的另一个对象,将数据导出到工作表中。您键入的代码只显示了“我的模板”的名称,并且显示了源图纸编号。此外,数据未成功导出。它只是一个空白工作簿,打开时只显示了我的模板工作簿的名称和源工作簿中的工作表名称。我相信代码与原始问题一样好。问题是您有一个工作簿要导出,需要该工作簿的名称和工作表名称。现在的问题是,您正在解释代码实际上将驻留在不同的工作簿模板中,而不是导出数据的工作簿。所以被复制的范围来自模板,我假设范围为空。逐步完成代码以确认并查看每一行都在做什么,您应该能够根据模板工作簿进行调整。谢谢您的回答。很抱歉,我应该澄清一下,我想显示导出到CSV文件中的工作簿的工作簿名和工作表名。