«Даты», установленные как общие, должны быть установлены на ДАТЫ - PullRequest
0 голосов
/ 22 апреля 2019

Мой скрипт VBA работает правильно, однако я не понимаю, почему даты в столбце "C" установлены и изменены на "Общие", когда они должны оставаться в качестве дат.Если мои даты не попадают на Лист 2 в качестве Даты, тогда формула в столбце «E» не будет отображать «Неоплаченные дни», поскольку лист должен отображаться с формулами.

VBA Сценарий ниже:

Sub deleteRowswithSelectedText4()

Dim lr As Long
Dim i As Long
Dim szRange As String
Dim rng As Range

lr = Cells(Rows.Count, 1).End(xlUp).Row

    For i = lr - 1 To 2 Step -1
        If Cells(i, "B") = "LLC" Then
            Cells(i, "B").EntireRow.Delete
        End If
    Next i


szRange = "A118:D300"

             Worksheet("Sheet1").Range("A16:B300,J16:J300,R16:R300").Copy_ 
             Destination:=Worksheets("Sheet2").Range("A118:D300")


Worksheets("Sheet2").Range("C118:C300").NumberFormat = "m/d/yy"


End Sub

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Когда дата указывается в виде строки, быстрое исправление заключается в использовании TextToColumns, похожем на:

Columns("A").TextToColumns DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=False

Обычно это устанавливает дату в ваших локальных (компьютерных) настройках.

0 голосов
/ 22 апреля 2019

Копировать метод получить формат текста

U может использовать .value2 (которые не меняют форматы)

также .value2 намного быстрее, чем Копировать

 With Worksheet("Sheet2")
    .Range("A16:B300").value2 = Worksheet("Sheet1").Range("A118:B300").value2
    .Range("J16:J300").valu2 = Worksheet("Sheet1").Range("C118:C300").value2
    .Range("R16:R300") = Worksheet("Sheet1").Range("D118:D300").value2
 End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...