我收到错误消息,运行时错误1004(应用程序定义或对象定义错误)。
基本上,在第30列(无论对应的字母),它应该复制并粘贴某个选择。接下来,根据投标人的数量,让我们说2,每隔8列,就会有另一个需要复制并粘贴到新工作表的选择。
所以说我有2个投标人:
然后需要将第30列和第38列复制并粘贴到另一个工作表中。有人可以帮我从这里出去吗?输入弹出我没有问题,但是一旦它到达这个部分开始复制并粘贴列,就会出现错误消息。
''''Get adsad
For i = 0 To bidNum - 1
Range(colRange.Offset(0, 30 + i * 8)).Select
Range(colRange.Offset(0, 30 + i * 8)).EntireColumn.Copy
Worksheets("Per FOB Delivered").Activate
colRange.Offset(0, 11 + i).Select
colRange.Offset(0, 11 + i).Paste
With Selection
.HorizontalAlignment = xlGeneral
.Font.Name = "Calibri"
.Font.Size = 10
.EntireColumn.AutoFit
End With
Next i
ActiveCell.Offset(0, -10).Range("A1").Select
Sheets("Master Calc").Select
声明在这里:
'Declarations
Dim bidNum As Integer
Dim colRange As Range
Set colRange = Range("A1")
'User Input
bidNum = InputBox("Please Enter the number of bidders: ")
编辑:我相信我已将问题缩小到这个范围: 工作表("按FOB交付")。激活 我设置了所有注释和代码工作,然后我逐行,当我到达这部分代码时它停止工作(提示错误消息)。 我试过了:
ActiveWorkbook.Sheets("Per FOB Delivered").Activate
它也没有用。为了记录,我的代码确实创建了该页面,直到这一部分为止(没有列出因为它有点长)。
这里有一些其他代码完全正常的代码片段,请注意,此部分在另一部分之前,并且还有其他类似的部分。我列出的代码没有错误:
'Get Current Net FOB Overage /lb
Range("P1").Select
Range("P1").EntireColumn.Copy
Sheets("Per FOB Delivered").Activate
ActiveCell.Range("J1").Select
ActiveSheet.Paste
With Selection
.HorizontalAlignment = xlGeneral
.Font.Name = "Calibri"
.Font.Size = 10
.EntireColumn.AutoFit
End With
ActiveCell.Offset(0, -9).Range("A1").Select
Sheets("Master Calc").Select
答案 0 :(得分:0)
评论中已经提到过,但你应该避免使用。尽可能选择。通常它是不必要的,如果你避免它,你的代码将运行得更快,看起来更简单。
关于您的问题,请使用
colRange.Offset(0, 11 + i).PasteSpecial
而不是.Paste,合并后的细胞不应该有所作为。