#excel #vba
#excel #vba
Вопрос:
У меня есть электронная таблица, в которой все столбцы после C относятся к определенным неделям, например, неделя 1, неделя 2. Мне нужно сохранить столбцы A-C, но затем мне нужно удалить все столбцы, кроме номера ТЕКУЩЕЙ недели, и два столбца справа от него.
Это довольно большая электронная таблица, и номер текущей недели теперь равен столбцу CK, но его придется обновлять каждую неделю.
Неделя — нет. отображаются во втором ряду.
Также мне нужно скопировать ячейки с текущей недели и двух соседних с ней столбцов.
Пожалуйста, помогите мне, я везде искал решение и все перепробовал.
Я могу получить номер текущей недели, используя
iNumberOfTheWeek = DatePart("ww", Now())
'// current number of of the week in the year
Но я не знаю, как это использовать
Ответ №1:
Я думаю, что SO рекомендует больше усилий, показанных в вопросе, но в любом случае это много для вас:
Sub Sub1()
Dim iNumberOfTheWeekamp;, FindColamp;
Dim FindRange As Range, delRange As Range, copyRange As Range
iNumberOfTheWeek = DatePart("ww", Now())
' the range to search
Set FindRange = Range(Cells(2, 4), Cells(2, Columns.Count))
Debug.Print FindRange.Address
' find the current week
Set FindRange = FindRange.Find(iNumberOfTheWeek, LookIn:=xlValues)
If FindRange Is Nothing Then MsgBox "Not found": End
Debug.Print FindRange.Address
FindCol = FindRange.Column
' the first (left) range to delete
Set delRange = Range(Columns(4), Columns(FindCol - 1))
Debug.Print delRange.Address
delRange.Delete
' the second (right) range to delete
Set delRange = Range(Columns(7), Columns(Columns.Count))
Debug.Print delRange.Address
delRange.Delete
' the range to copy
Set copyRange = Columns(3).Resize(Rows.Count, 3) ' 3, 4, and 5
Debug.Print copyRange.Address
copyRange.Copy
'?? do what
End Sub