2013-09-25 52 views
0

我正在尝试偏移活动单元格直到满足特定条件。我写的是尝试偏移活动单元格时发生错误1004

Do While ActiveCell.Value <> Worksheets("Unit B").Range("D1").Value 
    ActiveCell.Offset(0, 1).Select 
Loop 

你能帮我解决这个问题吗?


给我的整个代码以供参考:下面的代码

Private Sub CommandButton1_Click() 

Dim ddsdata As Range 

Dim i As Long 
i = 1 

Worksheets("Unit B").Select 
Set ddsdata = Worksheets("Unit B").Range("E3:E35") 
Worksheets("Data Sheet").Select 
Worksheets("Data Sheet").Range("E1").Select 

Do While ActiveCell.Offset(0, i) <> Worksheets("Unit B").Range("D1").Value 
i = i + 1 

Loop 

ActiveCell.Offset(1, i).Select 
ActiveCell.Value = ddsdata 
+0

数据表中的数据如何布置?它是在列还是在行中?你想做什么?你能更好地解释吗? – 2013-09-25 13:19:33

+0

我正试图在“数据表”中存储在“单元B”中输入的数据。 “单元B”具有每天填充的表格(32行),数据必须在“数据表”中以日期方式存储,而不删除以前的数据。数据表具有与连续列中的一个月中的所有日期相同的形式。我想要做的是在“单元B”中查找日期,并将其与“数据表”中的日期相匹配,然后粘贴数据 – user2814837

+0

任何可以提供样例屏幕截图或工作簿的更改?我很难想象你在做什么以及你的数据是如何布置的。如果您在复制匹配数据之前和之后向我们展示了“单元B”和“数据表”,请保持良好。 – 2013-09-25 13:38:59

回答

0

尝试。避免在代码中使用Select/Activate/ActiveCell。也总是通过sheetname然后单元格来引用单元格。例如工作簿中的Sheet1.Range("A1")以获得更好的结果。

Private Sub CommandButton1_Click() 

    Dim ddsdata As Range 

    Dim i As Long 
    i = 1 

    Thisworkoook.Activate 
    Set ddsdata = Thisworkoook.Sheets("Unit B").Range("E3:E35") 

    Do While Worksheets("Data Sheet").Range("E1").Offset(0, i) <> Worksheets("Unit B").Range("D1").Value 
      i = i + 1 
    Loop 

    ActiveCell.Offset(1, i).Select 
    ActiveCell.Value = ddsdata 

End Sub 
+0

@mehow感谢您的编辑。 – Santosh

+0

Do While statement – user2814837

+0

@ user2814837显示同样的错误错误消息是什么? – Santosh

相关问题