#excel #vba
#excel #vba
Вопрос:
Итак, у меня был макрос prefect sample, чтобы открыть книгу, скопировать таблицу в «Feuil1» в другой книге, скопировать таблицу на новый лист и очистить «Feuil1» для другого использования. Теперь, когда я пытаюсь ее увеличить, по какой-то причине она копирует определенный диапазон, но вместо того, чтобы просто использовать range B2: EA201 как закодированный, Excel по какой-то глупой причине использует EA201201.
Использование ctrl End приводит меня к EA201201, который не имеет форматирования или значения, поэтому я в растерянности… Думаете, это может быть связано с двухбуквенным столбцом, поскольку я никогда раньше этим не пользовался? Знаете ли вы, что происходит?
Workbooks.Open fileName:="C:FilePathClasseurX.xlsm"
Application.Wait (Now TimeValue("0:00:05"))
Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopyLastRow As Long
Dim lDestLastRow As Long
Set wsCopy = Workbooks("ClasseurX.xlsm").Worksheets("Synthèse")
Set wsDest = Workbooks("ClasseurPrimaire.xlsm").Worksheets("Feuil1")
lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "B").End(xlUp).Row
lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "B").End(xlUp).Offset(1).Row
wsCopy.Range("B2:EA201" amp; lCopyLastRow).Copy _
wsDest.Range("B" amp; lDestLastRow)
Workbooks("ClasseurX.xlsm").Close SaveChanges:=False
ThisWorkbook.Activate
Dim WSCount As Long
WSCount = Worksheets.Count
'
ActiveWorkbook.Sheets("Feuil1").Copy _
After:=ActiveWorkbook.Sheets(WSCount)
Sheets("Feuil1 (2)").Name = "NewSheet" amp; WSCount 1
ActiveWorkbook.Sheets("Feuil1").Activate
Range("B2:EA201").Clear
End Sub
Комментарии:
1. Спасибо @BraX за очистку моего поста!
2.
wsCopy.Range("B2:EA201" amp; lCopyLastRow).Copy
означает скопировать диапазон,"B2:EA201" amp; 201
еслиlCopyLastRow
он равен 201. Поэтому попробуйте использоватьwsCopy.Range("B2:EA" amp; lCopyLastRow).Copy
…3. Попробуйте изменить строку
wsCopy.Range("B2:EA201" amp; lCopyLastRow).Copy _
наwsCopy.Range("B2:EA" amp; lCopyLastRow).Copy _
. Обратите внимание, как я удалил201
4. Это было абсолютно все, ребята, спасибо за ваши быстрые ответы!