将单元格从一个工作簿复制到另一个工作簿可以逐步进行,但不能在运行时进行

时间:2014-08-01 22:46:24

标签: excel vba debugging excel-vba

我正在编写一个从活动工作簿(订单表单)中获取特定单元格的子程序,打开指定的工作簿(报表)并按特定顺序删除值。奇怪的是,这可以正常工作,我可以看到报表工作簿打开,值填充,但运行时打开工作簿但似乎没有改变它。

代码如下(有点粗糙,准备好,我还在学习......)

Sub TransferTheData()

Dim mySheet As Worksheet, myOtherSheet As Worksheet
Dim myOtherBook As Workbook
Dim i As Integer, j As Integer
Dim vToday As String

Set myOtherBook = Workbooks.Open("c:\\Test\Test Report.xlsx")
Set mySheet = ThisWorkbook.Sheets("Order Form")
Set myOtherSheet = myOtherBook.Sheets("Sheet1")

vToday = Format(Date, "dd/mmmm/yyyy")

j = myOtherSheet.Range("A" & Rows.Count).End(xlUp).Row + 1

    For i = 18 To 85
        If mySheet.Cells(i, 1).Value <> "" Then
            'Loop through 68 rows and copy values
            myOtherSheet.Cells(j, 3).Value = mySheet.Cells(i, 1).Value
            myOtherSheet.Cells(j, 4).Value = mySheet.Cells(i, 2).Value
            myOtherSheet.Cells(j, 5).Value = mySheet.Cells(i, 3).Value
            'constant values copied to each row in report sheet
            myOtherSheet.Cells(j, 1).Value = mySheet.Cells(5, 2).Value
            myOtherSheet.Cells(j, 2).Value = mySheet.Cells(9, 5).Value
            myOtherSheet.Cells(j, 8).Value = vToday
            myOtherSheet.Cells(j, 6).Value = mySheet.Cells(9, 2).Value
            myOtherSheet.Cells(j, 7).Value = mySheet.Cells(6, 2).Value
            j = j + 1
        End If
    Next i

End Sub

任何人都可以看到我出错的地方吗?看着它好几个小时都在摸我的脑袋......

1 个答案:

答案 0 :(得分:0)

通常情况下,看了几个小时然后发一个问题,我就在SO上找到了答案!

This thread讨论并回答了这个问题。键盘快捷键中没有使用工作簿对象的Open方法的移位键(我认为):

  

shift键使vb脚本在任何Open语句处停止。

为.add切换.open,我们按照预期滚动了全部功能! :)