如何获取范围中最后一行的单元格地址 Sub-ToolDataExtract() 将wb设置为工作簿 将myPath设置为字符串 将myFile设置为字符串 Dim myExtension作为字符串 Dim FldrPicker As FILE对话框 Application.ScreenUpdating=False Application.EnableEvents=False Application.Calculation=xlCalculationManual '从用户检索目标文件夹 Set FldrPicker=Application.FileDialog(msoFileDialogFolderPicker) 用FldrPicker .Title=“选择目标文件夹” .AllowMultiSelect=False 如果.Show-1,则转到下一个代码 myPath=.SelectedItems(1)和“\” 以 "如果取消, 下一个代码: myPath=myPath 如果myPath=”“,则转到重置设置 '目标文件扩展名 myExtension=“*.csv*” '具有结束扩展名的目标路径 myFile=Dir(myPath&myExtension) '循环浏览文件夹中的每个Excel文件 当我的文件“”时执行此操作 '将变量设置为等于打开的工作簿 设置wb=Workbooks.Open(文件名:=myPath&myFile,UpdateLinks:=False) '在继续下一行代码之前,确保工作簿已打开 多芬特 '从文件中提取的数据 '查找Excel数据的最后一行 s=范围(“AE2”)'此范围将更改 将单元格地址设置为字符串 cellAddress=Sheet1.单元格(Sheet1.Rows.Count,8).结束(xlUp).地址 f1a=范围(“R2”) f1b=范围(“N2”) f1c=范围(“O2”) f1d=范围(“Q2”) f1e=范围(“S2”) f1f=范围(“P2”) f1g=范围(“H2”) f1h=范围(“&cellAddress&”) '粘贴到Excel文件中的数据 工作簿(“文件2”)。工作表(“WMI日志”)。激活 范围(“A1:H1”)=数组(“T”、“H”、“I”、“P”、“W”、“O”、“X1”、“X2”) 单元(s+1,1)=f1a 单元格(s+1,2)=f1b 单元格(s+1,3)=f1c 单元格(s+1,4)=f1d 单元格(s+1,5)=f1e 单元格(s+1,6)=f1f 单元格(s+1,7)=f1g 单元格(s+1,8)=f1h '在继续下一行代码之前,确保工作簿已关闭 多芬特 wb.Close SaveChanges:=False '获取下一个文件名 myFile=Dir 环 '任务完成时的消息框 MsgBox“任务完成” '重置宏设置 重置设置: Application.EnableEvents=True Application.Calculation=xlCalculationAutomatic Application.ScreenUpdating=True 端接头

如何获取范围中最后一行的单元格地址 Sub-ToolDataExtract() 将wb设置为工作簿 将myPath设置为字符串 将myFile设置为字符串 Dim myExtension作为字符串 Dim FldrPicker As FILE对话框 Application.ScreenUpdating=False Application.EnableEvents=False Application.Calculation=xlCalculationManual '从用户检索目标文件夹 Set FldrPicker=Application.FileDialog(msoFileDialogFolderPicker) 用FldrPicker .Title=“选择目标文件夹” .AllowMultiSelect=False 如果.Show-1,则转到下一个代码 myPath=.SelectedItems(1)和“\” 以 "如果取消, 下一个代码: myPath=myPath 如果myPath=”“,则转到重置设置 '目标文件扩展名 myExtension=“*.csv*” '具有结束扩展名的目标路径 myFile=Dir(myPath&myExtension) '循环浏览文件夹中的每个Excel文件 当我的文件“”时执行此操作 '将变量设置为等于打开的工作簿 设置wb=Workbooks.Open(文件名:=myPath&myFile,UpdateLinks:=False) '在继续下一行代码之前,确保工作簿已打开 多芬特 '从文件中提取的数据 '查找Excel数据的最后一行 s=范围(“AE2”)'此范围将更改 将单元格地址设置为字符串 cellAddress=Sheet1.单元格(Sheet1.Rows.Count,8).结束(xlUp).地址 f1a=范围(“R2”) f1b=范围(“N2”) f1c=范围(“O2”) f1d=范围(“Q2”) f1e=范围(“S2”) f1f=范围(“P2”) f1g=范围(“H2”) f1h=范围(“&cellAddress&”) '粘贴到Excel文件中的数据 工作簿(“文件2”)。工作表(“WMI日志”)。激活 范围(“A1:H1”)=数组(“T”、“H”、“I”、“P”、“W”、“O”、“X1”、“X2”) 单元(s+1,1)=f1a 单元格(s+1,2)=f1b 单元格(s+1,3)=f1c 单元格(s+1,4)=f1d 单元格(s+1,5)=f1e 单元格(s+1,6)=f1f 单元格(s+1,7)=f1g 单元格(s+1,8)=f1h '在继续下一行代码之前,确保工作簿已关闭 多芬特 wb.Close SaveChanges:=False '获取下一个文件名 myFile=Dir 环 '任务完成时的消息框 MsgBox“任务完成” '重置宏设置 重置设置: Application.EnableEvents=True Application.Calculation=xlCalculationAutomatic Application.ScreenUpdating=True 端接头,excel,vba,Excel,Vba,跳过获取行号,只需: Sub ToolDataExtract() Dim wb As Workbook Dim myPath As String Dim myFile As String Dim myExtension As String Dim FldrPicker As FileDialog Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCal

跳过获取行号,只需:

Sub ToolDataExtract()

Dim wb As Workbook
Dim myPath As String
Dim myFile As String
Dim myExtension As String
Dim FldrPicker As FileDialog

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

'Retrieves Target Folder From User
  Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
    With FldrPicker
      .Title = "Select A Target Folder"
      .AllowMultiSelect = False
        If .Show <> -1 Then GoTo NextCode
        myPath = .SelectedItems(1) & "\"
    End With

'In Case of Cancel
NextCode:
  myPath = myPath
  If myPath = "" Then GoTo ResetSettings

'Target File Extension
  myExtension = "*.csv*"

'Target Path with Ending Extention
  myFile = Dir(myPath & myExtension)

'Loop through each Excel file in folder
  Do While myFile <> ""
    'Set variable equal to opened workbook
      Set wb = Workbooks.Open(Filename:=myPath & myFile, UpdateLinks:=False)

'Ensure Workbook has opened before moving on to next line of code
      DoEvents

'Data Extracted from Files
'Find Last Row on Excel Data

s = Range("AE2")             'THIS RANGE WILL CHANGE

Dim cellAddress As String
cellAddress = Sheet1.Cells(Sheet1.Rows.Count, 8).End(xlUp).Address

f1a = Range("R2")
f1b = Range("N2")
f1c = Range("O2")
f1d = Range("Q2")
f1e = Range("S2")
f1f = Range("P2")
f1g = Range("H2")
f1h = Range("" & cellAddress & "")


'Data Pasted into Excel File
Workbooks("file2").Worksheets("WMI LOG").Activate
Range("A1:H1") = Array("T", "H", "I", "P", "W", "O", "X1", "X2")
Cells(s + 1, 1) = f1a
Cells(s + 1, 2) = f1b
Cells(s + 1, 3) = f1c
Cells(s + 1, 4) = f1d
Cells(s + 1, 5) = f1e
Cells(s + 1, 6) = f1f
Cells(s + 1, 7) = f1g
Cells(s + 1, 8) = f1h

'Ensure Workbook has closed before moving on to next line of code
      DoEvents

 wb.Close SaveChanges:=False

'Get next file name
      myFile = Dir
  Loop

'Message Box when tasks are completed
  MsgBox "Task Complete"

'Reset Macro Settings
ResetSettings:
    Application.EnableEvents = True
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True


End Sub

Sheet1.Cells(Rows.Count,8)。End(xlUp)。Address
?我将修改@BigBen对
Sheet1.Cells(Sheet1.Rows.Count,8)的回答。End(xlUp)。Address
@PeterT:
Rows.Count
为任何工作表返回相同的数字。。。没有必要修改它。@PeterT如果不起作用,
Dim cellAddress作为字符串
cellAddress=Sheet1.Cells(Sheet1.Rows.Count,8)。End(xlUp)。Address
<代码>范围。地址返回一个
字符串
,而不是
Sub simple()
    MsgBox Sheet1.Cells(Rows.Count, 8).End(xlUp).Address(0, 0)
End Sub