#vba #excel
#vba #excel
Вопрос:
Я не думаю, что это дубликат, однако я прошу прощения, если это так.
Я очень новичок в VBA, поэтому я надеялся, что кто-нибудь просмотрит мой код и поможет мне устранить ошибку, определяемую приложением или объектом, которую я получаю в строке ниже:
Set aCell = ActiveSheet.Range("P10:" amp; Cells(i, 0).Address) 'Trying to select rows based on value in i starting with P10
Вот полный макрос:
Sub freeze2()
Dim ws As Worksheet
Dim aCell As Range
Dim strg() As String
Dim count As Integer
Dim i As Integer
Dim size As Integer
size = ActiveSheet.Range("B9:B79").Find(What:=Worksheets("Email Template").Range("B5").Value) 'Looks for current fiscal week
Debug.Print size
count = 0
For i = 1 To size 'should represent current fiscal week back to first week of year, so for this week the range would be 1 to 40
Next i
ReDim numbers(size)
' Get each RED sheet
For Each ws In Worksheets
If ws.Tab.Color = 255 Then ' Find only RED tabs
Debug.Print "-----------------------------------------------------------------------"
Debug.Print "Name of Red Sheet: '" amp; ws.Name amp; "'" ' Debug...
Sheets(ws.Name).Select
Set aCell = ActiveSheet.Range("P10:" amp; Cells(i, 0).Address) 'Trying to select rows based on value in i starting with P10
If Not aCell Is Nothing Then
Set aCell = Range("H10") 'Taking acell and hopefully copying as values to H10
'Selection.copy
'Range("H10").Select
'Selection.PasteSpecial xlPasteValues
Else
End If
Application.CutCopyMode = False ' Unselect cell
End If
Следующий ws
End Sub
Все, что я пытаюсь сделать, это выбрать диапазон ячеек (всегда один столбец, однако размер строки будет меняться каждую неделю) и скопировать эти значения в другой столбец. Этот диапазон находится в одном и том же месте на всех красных листах.
Комментарии:
1. Ваша ссылка недействительна. Индексация ячеек начинается с 1, а не с 0.
2. нет столбца 0. Столбец A равен 1 и так далее. Измените значение
ActiveSheet.Range("P10:" amp; Cells(i, 0).Address)
наActiveSheet.Range("P10", ActiveSheet.Cells(i,16))
3. вау, чем больше я читаю, тем меньше понимаю. Ваш цикл for ничего не делает. я, на который вы ссылаетесь в прерывистой строке, всегда будет
size 1
.4. Спасибо, Райан, я чувствую себя глупо. Я ценю помощь!
5. @Scott Craner это действительно было необходимо? вау, чем больше я читаю, тем меньше понимаю. Не очень полезно.
Ответ №1:
Я хотел обновить это, чтобы показать редактирование Райана
Установите ACell = ActiveSheet .Range(«P10:» amp; Cells (i, 1).Адрес) ‘Пытается выбрать строки на основе значения в i, начиная с P10
Комментарии:
1. Вы должны посмотреть этот видеоряд на YouTube: Введение в Excel VBA
2. Спасибо, Томас, я посмотрю на них!