我试图遍历电子表格的一列中的行,其中第1列中有一个时间,在第2列中有一个日期,在第3列中有一个值。需要单次更改该值。我有以下代码,这给了我一个 (运行时错误1004-应用程序定义或对象定义的错误)和highlites
activecell.offset(-1,0).Range("A1").select
我一直在试图解决它/研究整个下午的问题,但是找不到适合我的答案。任何帮助将不胜感激
Sub Timestamp
Range("C1").Select
While ActiveCell.Value <> ""
Number = ActiveCell.Value
Counter = Counter +1
activecell.offset(-1,0).Range("A1").select
If ActiveCell.Value <> Number Then
activecell.offset(-1,0).Range("A1").select
Time = ActiveCell.Value
Sample = Sample +1
activecell.offset((Counter - Sample),3).Range("A1").select
ActiveCell.Value = Time
activecell.offset(-(Counter - Sample),-1).Range("A1").select
End If
Loop
End Sub
答案 0 :(得分:0)
您无需选择单元格即可获取其值。您只需要参考它们即可。 VBA是一种面向对象的编程语言。看一下此文档的基础知识: Object Oriented VBA
只要获得Number更改次数的计数,这应该为您提供该值,并且您可以添加需要处理的任何其他代码。
Option Explicit
Sub test()
Dim rng As Range
Dim number As Long
Dim counter As Integer
Set rng = Range("C1")
Do While rng.Value <> ""
number = rng.Value
If rng.Offset(1, 0).Value <> number Then
counter = counter + 1
End If
Set rng = rng.Offset(1, 0)
Loop
MsgBox counter & " changes"
End Sub