Excel VBA дублирует строки и увеличивает дату

Вы можете объединить две команды. Это не обязательно плохая практика, чтобы смешивать эти два, но здесь могут быть некоторые технические вещи, которые вам придется решать. Поскольку похоже, что вы пытаетесь преобразовать классический ASP-сайт в ASP.NET, если страниц не слишком много, я бы, вероятно, попытался выяснить проблемы с конверсией, чтобы все ваши страницы работали на ASP.NET ,

В противном случае, если вы хотите запускать ASP и ASP.NET бок о бок, если ваш сайт имеет состояние сеанса или аутентификацию, и вам нужно, чтобы они были доступны как на страницах asp, так и на asp.net, вам необходимо обеспечить что у вас есть стратегия для обработки такого рода вещей. Этот поток описывает проблемы управления сеансом, которые следует учитывать при запуске ASP с ASP.NET, например: Классическая ASP и интеграция ASP.NET .

0
задан user11220415 18 March 2019 в 16:15
поделиться

1 ответ

Это должно сработать для вас. Если вам нужна помощь в реализации этого, не стесняйтесь спрашивать:

Option Explicit
Sub TimesThirty()
    Dim LR As Long:     LR = Range("A" & Rows.Count).End(xlUp).Row
    Dim BR As Long:     BR = LR * Day(Application.EoMonth(Date, 1)) 'this way it will do it for the number of days of the current month
    Dim arrData As Variant, ws As Worksheet, x As Integer, i As Long, h As Long

    Set ws = ThisWorkbook.Sheets("Name") 'change name for the name of your sheet

    With ws
        x = .Cells(1, .Columns.Count).End(xlToLeft).Column 'last column on your sheet
        arrData = .Range(.Cells(1, 1), .Cells(BR, x)).Value

        'A loop through the array to copy the values except the Date which will go adding a day each loop
        For i = 1 To LR 'for every worker
            For h = 1 To Day(Application.EoMonth(Date, 1)) 'for every day of the month
                For x = 1 To UBound(arrData, 2) 'for every column
                    If x = 1 Then 'I'm assuming the Date is on the column 1, else change the value of x
                        arrData(LR + h, x) = DateSerial(Year(arrData(i, x)), Month(arrData(i, x)), h) 'Year, Month, Day
                    Else
                        arrData(LR + h, x) = arrData(i, x) 'copy the same value
                    End If
                Next x
            Next h
        Next i

        .Range(.Cells(1, 1), .Cells(BR, x)).Value = arrData 'Paste the array back to the sheet

    End With


End Sub
0
ответ дан Damian 18 March 2019 в 16:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: