2017-03-15 131 views
2

我有一个报价单 - 我需要将某些(标题)信息粘贴到主文件列A1:H1中,然后取出所引用的项目并粘贴到主文件列I1:T1I2:T2等如果超过一个项目。自动填充单元格范围

我能做的大部分,但如果报价的项目都超过1,那么我就需要从A1:H1列的标题信息自动填充到填充在0​​

下面最后一栏是我自己写的,但我可以不要让它工作。这可能是一个简单的问题,我不能看到,或者我可能试图以另一种循环更容易的方式做到这一点。

任何人都可以提出一个解决方案来填充列的信息在列A:H为多少行的项目?

Sub TransferQuoteToMasterQuoteTest() 

    Dim LastRow As Long 
    Dim R As Long 

    R = 16 

    Range("I5:I9").Copy 
    Worksheets.Add.Name = "MySheet" 
    Range("A1").PasteSpecial Transpose:=True 
    Sheets("Sheet1").Select 
    Range("K5").Copy 
    Sheets("MySheet").Select 
    Range("F1").PasteSpecial 
    Sheets("Sheet1").Select 
    Range("K11:K12").Copy 
    Sheets("MySheet").Select 
    Range("G1").PasteSpecial Transpose:=True 
    Range("I1").Select 
    Sheets("Sheet1").Select 
    Range("B16").Select 

     Do While Not IsEmpty(Worksheets("Sheet1").Range("B" & R)) 
      Worksheets("Sheet1").Range("B" & R & ":M" & R).Copy Worksheets("MySheet").Range("I" & (R - 15) & ":T" & (R - 15)) 
      R = R + 1 
     Loop 

    Worksheets("MySheet").Select 

     LastRow = Worksheets("MySheet").Range("I1").End(xlDown).Row 
      With Worksheets("MySheet").Range("A1") 
      .AutoFill Destination:=Range("A1:H" & LastRow&) 
     End With 

End Sub 

回答

0

您已经使用 '&' 之后 'LASTROW' 变量,请删除它,试试下面的代码:

随着工作表( “MySheet的工作”) .Range( “A1”)自动填充目的地:=范围( “A1:H” & LASTROW) 尾随着

+0

请你可以添加代码标签到你的文章。认为你也错过了一个点。 – SJR

+0

谢谢SJR,我试过,我仍然得到运行时错误'1004' –

+0

对不起“范围类的自动填充方法失败 –

0

通过去除选择SUBBED下你的代码,我认为你的固定误差

Sub TransferQuoteToMasterQuoteTest() 

Dim LastRow As Long 
Dim R As Long 

R = 16 
Worksheets.Add.Name = "MySheet" 

Sheets("Sheet1").Range("I5:I9").Copy 
Sheets("MySheet").Range("A1").PasteSpecial Transpose:=True 
Sheets("Sheet1").Range ("K5") 
Sheets("MySheet").Range("F1").PasteSpecial 
Sheets("Sheet1").Range("K11:K12").Copy 
Sheets("MySheet").Range("G1").PasteSpecial Transpose:=True 

Do While Not IsEmpty(Worksheets("Sheet1").Range("B" & R)) 
    Worksheets("Sheet1").Range("B" & R & ":M" & R).Copy Worksheets("MySheet").Range("I" & (R - 15) & ":T" & (R - 15)) 
    R = R + 1 
Loop 

LastRow = Worksheets("MySheet").Range("I1").End(xlDown).Row 
With Worksheets("MySheet") 
    .Range("A1:H1").AutoFill Destination:=.Range("A1:H" & LastRow) 
End With 

End Sub 
+0

谢谢SJR,但我仍然收到错误消息”运行时错误1004“范围类的自动填充方法失败 –

+0

现在就试试吧,做了一个小改动 – SJR

+0

感谢SJR,它现在可以工作,我很感激你的所有时间和帮助 –