У меня есть рабочая книга, которая используется для планирования следующего предстоящего задания на задании.каждая строка имеет 28 ячеек, каждая ячейка представляет день недели в течение четырех недель.Я сделал формулу, чтобы проверить дату ячейки с начальной и конечной датой задачи и заполнить ячейку соответственно.
Вот формула:
=IFERROR(IF(AND(ISNUMBER(SEARCH("Delivery",$D16)),VALUE(F$10)=VALUE('Calculation
New'!$AO53)),"D",IF(AND(ISNUMBER(SEARCH('Calculation
New'!$BH$13,$AJ16)),VALUE(F$10)>=VALUE('Calculation
New'!$AO53),VALUE(F$10)<=VALUE('Calculation
New'!$AP53)),"N",IF(AND(ISNUMBER(SEARCH('Calculation
New'!$BH$12,$AJ16)),VALUE(F$10)>=VALUE('Calculation
New'!$AO53),VALUE(F$10)<=VALUE('Calculation
New'!$AP53)),"E",IF(AND(VALUE('Calculation
New'!$AO53)=VALUE('Calculation New'!$AP53),F$10='Calculation
New'!$AO53,NOT(ISNUMBER(SEARCH('Calculation
New'!$BH$9,$D16)))),"SF",IF(AND(ISNUMBER(SEARCH('Calculation
New'!$BH$9,$D16)),VALUE(F$10)>=VALUE('Calculation
New'!$AO53),VALUE(F$10)<=VALUE('Calculation
New'!$AP53)),"I",IF(AND(VALUE(F$10)>VALUE('Calculation
New'!$AO53),VALUE(F$10)<VALUE('Calculation
New'!$AP53)),"X",IF(VALUE(F$10)=VALUE('Calculation
New'!$AO53),"S",IF(VALUE(F$10)=VALUE('Calculation
New'!$AP53),"F","")))))))),"")
несколько вещей к этой формуле: D16: D85 на листе «SIS» - это описание задачи, где искать определенные слова BH9 на листе »Вычисление New "содержит слово для сравнения.Диапазон слов: BH3: BH13 F10: AF10 на листе «SIS» содержит дату для ячеек ниже дня недели AO53: AO122 на листе «Расчет новый» содержит дату начала задачи AP53: AP122 влист «Вычисление нового» содержит дату окончания задачи
в настоящее время, я получил 70 строк по 28 ячеек, и в каждой ячейке есть эта формула.Теперь я хочу использовать код VBA, чтобы сделать то же самое, но мне трудно начинать.Я не очень опытен с VBA.Я исследовал в отношении вложенности для каждого цикла, но пока мне это не удается.
Буду признателен за любую помощь, которую смогу получить.
Заранее спасибо, Дан
Вот код, который я написал до сих пор, не полный, но я застрял и мне нужно немногосовет
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)</p>
<code>Dim SDate As Range
Dim EDate As Range
Dim WDate As Range
Set SDate = Worksheets("Calculation New").Range("SDate")
Set EDate = Worksheets("Calculation New").Range("EDate")
Set WDate = Worksheets("Calculation New").Range("WDate")
For SDate = 1 To Worksheets("Calculation New").Range("SDate").End(xlDown) 'lenght of range varies
'For WDate = 1 To 28 ' length is always same
'If cell = WDate Then 'i want to compare each cell of WDate with the start date
'cell = "X"
'Next
Next
End Sub
</code>