1
我想要一個常用的單元格,其中計算總是開始,然後我想根據日期和通過多少周來翻譯範圍因爲電子表格是最後更新的。返回活動單元格的列索引,以便它可以被操縱以形成一個新的範圍
例如Active Cell列索引是4並且12周過去了。所以活動單元現在需要列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
此代碼似乎仍然提供 「溢出」 的錯誤。目前唯一使用的數據是格式化日期,日期格式爲4萬。 @MacroMan_對不起,打擾你,但我希望你能幫助。我把星號放在顯示錯誤的地方。 乾杯 格雷格
謝謝宏文。我也遇到了麻煩,因爲我正在使用我的代碼獲取運行時錯誤13。你能幫忙嗎?乾杯 –
可能是因爲你正在使用'row(DatSt)',我認爲你想'DatSt.Row','Range()'方法中也不需要'='。儘管在這個例子中你不需要任何這些。 –
我已將您的代碼複製到我的{with}部分,並且錯誤似乎出現在WeekCom =和WeekUpd =行 –