Vba 行,收到_ 工作簿(MyNewBook)。工作表(MyTemp)。范围(“A1048575”)。结束(xlUp)。偏移量(1,0) “向下移动一个单元格 ActiveCell.Offset(1,0)。选择 '将Y增加1 Y=Y+1 '如果我们有所有匹配项,请添加标题并转到 下一圈 如果Y=MyLimit,则 范围(“A1”).EntireRow.Copy 工作簿(MyNewBook).工作表(MyTemp).范围(“A1”) 转到下一圈 如果结束 如果结束 环 下一个循环: “重置Y Y=0 “去做记录吧 纸张(“刮痕”)。选择 '删除整行 范围(“A1”).EntireRow.Delete 环 '关闭显示警报 Application.DisplayAlerts=False '删除草稿页 工作表(“刮痕”)。删除 '打开显示警报 Application.DisplayAlerts=True 工作簿(MyNewBook).SaveAs(“C:\Users\XNEID\Desktop\Test-MPAN-Destination 文件夹\Shell\u MPANs\u Test1“&“.xlsx”) 确保我们回到数据表上 图纸(“图纸1”)。选择 '选择范围的开始 范围(“A1”)。选择 呼叫forEachWs '打开计算 Application.Calculation=xlCalculationAutomatic '打开屏幕更新 Application.ScreenUpdating=True 端接头 副外长() 将ws设置为工作表 '打开新工作簿进行格式化 工作簿。打开“C:\Users\XNEID\Desktop\Test MPAN Destination” 文件夹\Shell\u MPANs\u Test1.xlsx“ 对于ActiveWorkbook.Worksheets中的每个ws 调用调整列大小(ws) 下一个 端接头 子大小调整列(ws-As工作表) 与ws .Range(“A1:BB1”).entireclumn.AutoFit 以 NumberOfSheets=工作簿(文件名).Worksheets.Count 端接头

Vba 行,收到_ 工作簿(MyNewBook)。工作表(MyTemp)。范围(“A1048575”)。结束(xlUp)。偏移量(1,0) “向下移动一个单元格 ActiveCell.Offset(1,0)。选择 '将Y增加1 Y=Y+1 '如果我们有所有匹配项,请添加标题并转到 下一圈 如果Y=MyLimit,则 范围(“A1”).EntireRow.Copy 工作簿(MyNewBook).工作表(MyTemp).范围(“A1”) 转到下一圈 如果结束 如果结束 环 下一个循环: “重置Y Y=0 “去做记录吧 纸张(“刮痕”)。选择 '删除整行 范围(“A1”).EntireRow.Delete 环 '关闭显示警报 Application.DisplayAlerts=False '删除草稿页 工作表(“刮痕”)。删除 '打开显示警报 Application.DisplayAlerts=True 工作簿(MyNewBook).SaveAs(“C:\Users\XNEID\Desktop\Test-MPAN-Destination 文件夹\Shell\u MPANs\u Test1“&“.xlsx”) 确保我们回到数据表上 图纸(“图纸1”)。选择 '选择范围的开始 范围(“A1”)。选择 呼叫forEachWs '打开计算 Application.Calculation=xlCalculationAutomatic '打开屏幕更新 Application.ScreenUpdating=True 端接头 副外长() 将ws设置为工作表 '打开新工作簿进行格式化 工作簿。打开“C:\Users\XNEID\Desktop\Test MPAN Destination” 文件夹\Shell\u MPANs\u Test1.xlsx“ 对于ActiveWorkbook.Worksheets中的每个ws 调用调整列大小(ws) 下一个 端接头 子大小调整列(ws-As工作表) 与ws .Range(“A1:BB1”).entireclumn.AutoFit 以 NumberOfSheets=工作簿(文件名).Worksheets.Count 端接头,vba,excel,Vba,Excel,以下脚本打开工作簿并返回宏所在工作簿第一张工作表中A1范围内的工作表计数: Sub Test() Dim fullPath As String Dim wb As Workbook fullPath = "Somepath\someworkbook.xlsx" Set wb = Workbooks.Open(fullPath) ThisWorkbook.Worksheets(1).Range("A1").Value = wb.Worksheets.Count wb.Close Set

以下脚本打开工作簿并返回宏所在工作簿第一张工作表中A1范围内的工作表计数:

Sub Test()
Dim fullPath As String
Dim wb As Workbook

fullPath = "Somepath\someworkbook.xlsx"

Set wb = Workbooks.Open(fullPath)

ThisWorkbook.Worksheets(1).Range("A1").Value = wb.Worksheets.Count

wb.Close

Set wb = Nothing
End Sub

为什么不直接使用此工作簿。工作表(“SheetnameWhereCountIsIn”)。范围(“A1”)。值=工作簿(文件名)。工作表。计数?因此,请按要求将其写入工作表的单元格中,而不是最后的“NumberOfSheets”变量中?打开文件后,调试。打印mpansepart.Worksheets.count谢谢您的回答。当我将其添加到例程中并逐步执行该例程,然后到达ThisWorkbook.Worksheets(1).Range(“A1”).Value=wb.Worksheets.Count行时,我可以在例程中看到计数,但它不会将计数放入任何单元格中。原始工作簿中按钮所在的工作表以及我想要返回结果的工作表是理想世界中的工作表14和单元格J10。我是否遗漏了一些明显的内容?您应该将“工作表(1)”替换为希望将值放入的工作表,例如
工作表(“SomeNameHere”)
和目标单元格的范围。-因此,它应该是
ThisWorkbook.Worksheets(“Sheet14”).Range(“J10”).value=wb.Worksheets.Count
我已根据您的建议进行了更新,但现在在同一行上创建了“运行时错误9:下标超出范围”。有什么想法吗?工作表名是“Sheet14”(工作簿中选项卡的名称?)还是其他什么?如果是其他内容,请使用选项卡名称。因此
此工作簿。工作表(“选项卡名称”)。范围(“J10”)。值
下标超出范围意味着您目前没有名为“Sheet14”的工作表。在VBA编辑器中,您很可能会在“Sheet14”后面的括号中看到“Tab name”。在这里,你可以通过不同的方式阅读表格,这是行之有效的。谢谢你的帮助。
Sub Test()
Dim fullPath As String
Dim wb As Workbook

fullPath = "Somepath\someworkbook.xlsx"

Set wb = Workbooks.Open(fullPath)

ThisWorkbook.Worksheets(1).Range("A1").Value = wb.Worksheets.Count

wb.Close

Set wb = Nothing
End Sub