我正在导入报告,将其发布到工作表,创建一个新选项卡(工作表 - 以“W(Date)”命名,并从原始表创建 MS Query 表以在新选项卡上创建过滤表。< /p>
当我命名新工作表时,我有一个汇总数据工作表,我想在其中将新工作表名称输入到 F 列中的第一个打开的单元格中。然后我可以从工作表名称中创建一个动态列表,以逐个表提取数据到工作簿前面的图表页面。
在下面的部分,当我到达声明 wsDest1.Range("F1" & RowCount).Select
的行时,光标向下跳到列中的第 110 行,而不是第 11 行。
使用带有 Print wsDest1.Cells(wsDest1.Rows.Count, "F").End(xlUp).Row
的立即窗口返回“10”。
使用 Print activesheet.usedrange.address
返回 $A$1:$I$10 所以对于列“F”它应该仍然是 11 来放置光标。
大多数变量在脚本的顶部声明,或者是在操作之前立即声明。脚本运行没有错误,除了在脚本末尾放置光标。
额外的 100 行来自哪里?
Sheets.Add After:=Sheets(Worksheets.Count)
'Sheets("Sheet1").Select
Set wks = ActiveSheet
Do While sName <> wks.Name
sName = Application.InputBox _
(Prompt:="Enter new worksheet name")
On Error Resume Next
wks.Name = sName
On Error GoTo 0
Loop
Set wks = Nothing
'Define value "n" = sName
n = sName
Set wsDest1 = Workbooks("TG Shipped Lines_Late Shipment Tracking_WorkInProgress.xlsm").Worksheets("SUMMARY DATA")
wsDest1.Activate
RowCount = wsDest1.Cells(wsDest1.Rows.Count, "F").End(xlUp).Row
wsDest1.Range("F1" & RowCount).Select
Selection.Value = n
Set wsDest1 = Nothing
End Sub
答案 0 :(得分:3)
wsDest1.Range("F1" & RowCount).Select
应该
wsDest1.Range("F" & RowCount).Select
编辑:正如其他人指出的那样,不需要任何选择/激活:
Dim wks As Worksheet, wb As Workbook, sName
Set wb = ActiveWorkbook
Set wks = wb.Worksheets.Add(After:=wb.Worksheets(wb.Worksheets.Count))
Do While sName <> wks.Name
sName = Application.InputBox(Prompt:="Enter new worksheet name")
On Error Resume Next
wks.Name = sName
On Error GoTo 0
Loop
'If "TG Shipped Lines_Late Shipment Tracking_WorkInProgress.xlsm"
' is where this code is running, then this line will do the rest
ThisWorkbook.Worksheets("SUMMARY DATA").Cells(Rows.Count, "F") _
.End(xlUp).Offset(1, 0).Value = wks.Name