关注this问题,我正在运行一个我想要运行的简单宏,同时仍然能够处理其他工作簿或同一工作簿的其他工作表而无需运行代码在那些。这是代码
Sub Data_Recording()
'
' Data_Recording Macro
' Copy excel line with hyperlinks and paste values in first line of data
recording area, insterting and moving old data down.
'
'
Rows("5:5").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B2:F2").Select
Selection.Copy
Range("B5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
alertTime = Now + TimeValue("00:00:20")
Application.OnTime alertTime, "Data_Recording"
End Sub
我尝试在每个范围或行选择之前添加工作簿和工作表的名称,但我一定做错了。
由于
答案 0 :(得分:4)
您需要调整代码,以便使用Worksheet
对象限定所有范围,并且不需要.Select
或.Activate
语句。
Sub Data_Recording()
With Workbooks("Workbook_Name_Here").Sheets("Sheet_Name_Here") '// Change as required
.Rows(5).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Range("B5:F5").Value = .Range("B2:F2").Value '// No need to copy/paste
End With
Application.OnTime Now + TimeValue("00:00:20"), "Data_Recording"
End Sub
答案 1 :(得分:0)
试试这个:
ThisWorkbook.Sheets("You Sheet").Rows("5:5").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ThisWorkbook.Sheets("You Sheet").Range("B2:F2").Copy
ThisWorkbook("You Workbook").Sheets("You Sheet").Range("B5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
alertTime = Now + TimeValue("00:00:20")
Application.OnTime alertTime, "Data_Recording"
答案 2 :(得分:0)
请确保将上述代码放在工作表范围内。
在VBA编辑器中,您可以看到“Microsoft Excel对象”'在Project Properties窗口中。 展开它并双击要使用的工作表(确保您也选择了正确的工作簿)
在该代码编辑器中,输入相同的上述代码(无需提供工作表名称或工作簿名称)。
它应该可以正常工作。
答案 3 :(得分:-1)
export PATH=${PATH:+$PATH:}/home/<login>/phantomjs/bin