我正在尝试使用一个公共单元格,其中计算始终开始,然后我想根据日期以及自电子表格上次更新以来经过的周数来翻译范围。
例如Active Cell列索引已经过去了4周和12周。所以Active Cell现在需要是第16列。然后我想选择右侧的12列和所有使用的行。
$ Sub DataUpdate()
Dim WeekCom As Double
Dim WeekUpd As Double
Dim DatSt As Range
Dim DifWks As Double
WeekCom = Int("WeekCommencing")
WeekUpd = Int("Lastupdate")
DifWks = WeekCom - WeekUpd
Set DatSt = Range("DataStart")
If WeekCom > WeekUpd + 7 Then
With ActiveSheet
.Range(Cells(row(DatSt), = Column(DatSt)+ DifWks), Cells
(Cells.Rowindex.SpecialCells(xlCellTypeLastCell), = Column(DatSt)+ DifWks+12))
End With
End If
End Sub $
这是我到目前为止我不确定它是否有用,因为我是VBA的新手。
此致
格雷格
Sub DataUpdate()
Dim WeekCom As Long
Dim WeekUpd As Long
Dim DifWks As Long
Dim DatSt As Range
Dim newRange As Range
**WeekCom = CInt(Range("WeekCommencing").Value)**
**WeekUpd = CInt(Range("Lastupdate").Value)**
DifWks = WeekCom - WeekUpd
Set DatSt = Range("DataStart")
If WeekCom > WeekUpd + 7 Then
Set newRange = Intersect(DatSt.Offset(0, DifWks).Resize(1, DifWks).EntireColumn, ActiveSheet.UsedRange)
End If
MsgBox newRange.Address
End Sub
此代码似乎仍然提供“溢出”错误。它目前使用的唯一数据是格式为一般的日期,因此在40万。 @MacroMan_抱歉打扰你,但我希望你能提供帮助。我把星号放在显示错误的地方。 干杯 格雷格