Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 向宏添加插入文件名函数_Excel_Vba_Filenames - Fatal编程技术网

Excel 向宏添加插入文件名函数

Excel 向宏添加插入文件名函数,excel,vba,filenames,Excel,Vba,Filenames,我需要帮助将导入的文件名插入excel中的工作表中。我从网上的某个地方得到了这段代码,只想将导入的文件名填充到工作簿中已存在的名为“LOGSTAT Report”的工作表的一个单元格中 这是我的宏 Option Explicit ' ************************************************ ' Variables For File Open Dialogue Box ' ******************************************

我需要帮助将导入的文件名插入excel中的工作表中。我从网上的某个地方得到了这段代码,只想将导入的文件名填充到工作簿中已存在的名为“LOGSTAT Report”的工作表的一个单元格中

这是我的宏

Option Explicit

' ************************************************
' Variables For File Open Dialogue Box
' ************************************************
Public strDialogueFileTitle As String
Public strFilt As String
Public intFilterIndex As Integer
Public strCancel As String
Public strWorkbookNameAndPath As String
Public strWorkbookName As String
Public strWorksheetName As String

Public Sub OpenAFileAndCopyData()
Dim wkbMasterWorkbook As Workbook
Dim wksMasterWorksheet As Worksheet
Dim wkbImportedWorkbook As Workbook
Dim wksImportedWorksheet As Worksheet
Dim rngImportCopyRange As Range

Application.ScreenUpdating = False
Set wkbMasterWorkbook = ThisWorkbook
Set wksMasterWorksheet = Sheets("READIsim Output")

' ****************************************************************************
' Set Up Filters For Which Files Should Show In The Open File Dialog Box
' ****************************************************************************
strFilt = "CSV Files (*.csv),*.csv,"

' ****************************************************************************
' Set Up The Prompt In The Dialogue Box
' ****************************************************************************
intFilterIndex = 1
strDialogueFileTitle = "Select The Workbook You Want To Import"

' ****************************************************************************
' Present the Open File Dialogue To The User
' ****************************************************************************
Call OpenFileDialogue

' ****************************************************************************
' Notify The User If No File Was Successfully Opened
' ****************************************************************************
If strCancel = "Y" Then
    MsgBox ("An Open Error Occurred Importing Your File Selection")
    Exit Sub
End If

' ****************************************************************************
' Set Imported Workbook and Worksheet Variables
' ****************************************************************************
Set wkbImportedWorkbook = ActiveWorkbook
Set wksImportedWorksheet = wkbImportedWorkbook.Sheets(1)


' ****************************************************************************
' Choose This Or The Next
' Copy The Data (Paste Special Will Be The Next Example)
' ****************************************************************************
Set rngImportCopyRange = Range(wksImportedWorksheet.Cells(1, 1), Cells(500, 1)).EntireRow
rngImportCopyRange.Copy wksMasterWorksheet.Cells(1, 1)
wkbMasterWorkbook.Activate
Application.DisplayAlerts = False
wkbImportedWorkbook.Close Savechanges:=False
Application.DisplayAlerts = True

wksMasterWorksheet.Activate
wksMasterWorksheet.Cells(1, 1).Select

Application.ScreenUpdating = True
End Sub

Private Sub OpenFileDialogue()

' ************************************************
' Display a File Open Dialogue Box For The User
' ************************************************
strCancel = "N"
strWorkbookNameAndPath = Application.GetOpenFilename _
    (FileFilter:=strFilt, _
     FilterIndex:=intFilterIndex, _
     Title:=strDialogueFileTitle)

' ************************************************
' Exit If No File Selected
' ************************************************
If strWorkbookNameAndPath = "" Then
    MsgBox ("No Filename Selected")
    strCancel = "Y"
    Exit Sub
ElseIf strWorkbookNameAndPath = "False" Then
    MsgBox ("You Clicked The Cancel Button")
    strCancel = "Y"
    Exit Sub
End If

' ******************************************************
' Now That You Have The User Selected File Name, Open It
' ******************************************************
Workbooks.Open strWorkbookNameAndPath

ActiveSheet.Columns("B:AN").NumberFormat = "General"

End Sub

谢谢您的帮助。

最后一行代码是:

Workbooks.Open strWorkbookNameAndPath
在这一行之后,您可以添加

MsgBox strWorkbookNameAndPath
获取包含已打开文件名的msgBox

你可以用

Debug.Print strWorkbookNameAndPath
在即时窗口中查看打开的文件的名称(VBE中的Ctrl G)

用命令

Worksheets("LOGSTAT Report").Range("A1").Value = strWorkbookNameAndPath

文件名插入到工作表“LOGSTAT Report”的单元格“A1”中。

最后一行代码是:

Workbooks.Open strWorkbookNameAndPath
在这一行之后,您可以添加

MsgBox strWorkbookNameAndPath
获取包含已打开文件名的msgBox

你可以用

Debug.Print strWorkbookNameAndPath
在即时窗口中查看打开的文件的名称(VBE中的Ctrl G)

用命令

Worksheets("LOGSTAT Report").Range("A1").Value = strWorkbookNameAndPath

文件名插入到工作表“LOGSTAT Report”的单元格“A1”中。

我可以得到显示文件名的消息框,但随后它给了我以下命令的问题。它似乎是在我要导入的文件中查找LOGSTAT报告工作表,而不是在我要导入信息的工作簿中查找文件名和所有内容。我能够获得显示文件名的消息框,但随后它给了我以下命令的问题。它似乎是在我要导入的文件中查找LOGSTAT报告工作表,而不是在我要导入信息的工作簿中查找文件名和所有内容。