Excel 2007 VBA选择单元格范围
我正在尝试选择一系列单元格。我以前做过,但语法有问题Excel 2007 VBA选择单元格范围,excel,excel-2007,vba,Excel,Excel 2007,Vba,我正在尝试选择一系列单元格。我以前做过,但语法有问题 Sub ChgDateX() Range("A41").Select Do If ActiveCell.Value = "Last Updated" Then mydate = ActiveCell.Offset(-40, 0).Value 'Cells(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 9)).Select ActiveCell.Offset(0
Sub ChgDateX()
Range("A41").Select
Do
If ActiveCell.Value = "Last Updated" Then
mydate = ActiveCell.Offset(-40, 0).Value
'Cells(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 9)).Select
ActiveCell.Offset(0, 1).Value = mydate
ActiveCell.Offset(0, 2).Value = mydate
ActiveCell.Offset(0, 3).Value = mydate
ActiveCell.Offset(0, 4).Value = mydate
ActiveCell.Offset(0, 5).Value = mydate
ActiveCell.Offset(0, 6).Value = mydate
ActiveCell.Offset(0, 7).Value = mydate
ActiveCell.Offset(0, 8).Value = mydate
ActiveCell.Offset(0, 9).Value = mydate
ActiveCell.EntireRow.Select
Selection.NumberFormat = "m/d/yyyy"
ActiveCell.Offset(1, 0).Select
Else: ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell.Value = "" & ActiveCell.Offset(-3, 0).Value = ""
End Sub
我正试图摆脱单独的offset=mydate类型编码。试试这个:
ActiveCell.Range("B1:J1").Value = MyDate
试试这个:
ActiveCell.Range("B1:J1").Value = MyDate
这个怎么样。。。带一张钞票。我不建议这样循环。也许您可以在
列A“
上进行筛选,然后在可见单元格中循环?不知道你在做什么很难说
Option Explicit
Sub ChgDateX()
Range("A41").Select
Do
If ActiveCell.Value = "Last Updated" Then
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 9)).Value = ActiveCell.Offset(-40, 0).Value
ActiveCell.EntireRow.NumberFormat = "m/d/yyyy"
End If
ActiveCell.Offset(1).Select
Loop Until ActiveCell.Value = "" & ActiveCell.Offset(-3, 0).Value = ""
End Sub
这个怎么样。。。带一张钞票。我不建议这样循环。也许您可以在
列A“
上进行筛选,然后在可见单元格中循环?不知道你在做什么很难说
Option Explicit
Sub ChgDateX()
Range("A41").Select
Do
If ActiveCell.Value = "Last Updated" Then
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 9)).Value = ActiveCell.Offset(-40, 0).Value
ActiveCell.EntireRow.NumberFormat = "m/d/yyyy"
End If
ActiveCell.Offset(1).Select
Loop Until ActiveCell.Value = "" & ActiveCell.Offset(-3, 0).Value = ""
End Sub
两件事:
此代码:
Loop Until ActiveCell.Value = "" & ActiveCell.Offset(-3, 0).Value = ""
无法按预期工作,因为您要查找的正确运算符是和
,而不是&
你不必“选择”任何东西。您可以将对单元格的引用放在变量中(请参见我的代码)
此外,由于您总是向下移动到循环中的下一个单元格,因此可以将其置于IF
语句之外
根据您的代码,我认为您正在寻找以下内容:
Option Explicit
Sub test()
Dim r As Range
Dim myDate As Date
Set r = Range("A41")
Do
If (r.Value = "Last Updated") Then
myDate = r.Offset(-40, 0).Value
With Range(r.Offset(0, 1), r.Offset(0, 9))
.Value = myDate
.NumberFormat = "m/d/yyyy"
End With
End If
Set r = r.Offset(1, 0)
Loop Until r.Value = vbNullString And r.Offset(-3, 0).Value = ""
End Sub
两件事:
此代码:
Loop Until ActiveCell.Value = "" & ActiveCell.Offset(-3, 0).Value = ""
无法按预期工作,因为您要查找的正确运算符是和
,而不是&
你不必“选择”任何东西。您可以将对单元格的引用放在变量中(请参见我的代码)
此外,由于您总是向下移动到循环中的下一个单元格,因此可以将其置于IF
语句之外
根据您的代码,我认为您正在寻找以下内容:
Option Explicit
Sub test()
Dim r As Range
Dim myDate As Date
Set r = Range("A41")
Do
If (r.Value = "Last Updated") Then
myDate = r.Offset(-40, 0).Value
With Range(r.Offset(0, 1), r.Offset(0, 9))
.Value = myDate
.NumberFormat = "m/d/yyyy"
End With
End If
Set r = r.Offset(1, 0)
Loop Until r.Value = vbNullString And r.Offset(-3, 0).Value = ""
End Sub
你想在这里做什么?Tim我在活动单元格中有一个日期,.Offset(-1,-39)我想覆盖我在引用时遇到问题的范围组中的现有值。我没有放置用于传递If语句的附加代码。原始帖子已为Clarity编辑。您在这里尝试做什么?Tim我有一个来自活动单元格的日期,.Offset(-1,-39)我想覆盖我在引用时遇到问题的范围组中的现有值。我没有放置用于传递If语句的附加代码。为清晰起见,对原始Post进行了编辑