#excel #vba
#excel #vba
Вопрос:
Пожалуйста, помогите мне с этим кодом. Все, что я хочу, это скопировать данные и вставить их в ячейку и сохранить их скрытыми. Но после использования моего кода и вставки он все еще виден. Как я могу создать код vba, который после вставки скроет ячейку? Пожалуйста, помогите мне. Спасибо.
Sub selectVisibleRange()
Dim DbExtract, DuplicateRecords As Worksheet
Set DbExtract = ThisWorkbook.Sheets("Sheet2")
Set DuplicateRecords = ThisWorkbook.Sheets("Sheet1")
DbExtract.Range("X:X").SpecialCells(xlCellTypeVisible).Copy
DuplicateRecords.Cells(1, 3).PasteSpecial Paste:=8
End Sub
Комментарии:
1. Вы не копируете скрытые ячейки. Вы копируете видимые ячейки.
2. Если вы скроете все видимые ячейки в столбце X, на листе ничего не останется,
3. Теперь я знаю ответ на свой вопрос. Частная вспомогательная команда button1_Click() Затемняет DbExtract, дублирует записи в виде набора таблиц DbExtract = ThisWorkbook. Листы («Sheet2») Установите DuplicateRecords = ThisWorkbook. Sheets («Лист1») DbExtract. Диапазон («E: E»). Специальные ячейки (xlCellTypeVisible). Скопируйте дублирующиеся записи. Ячейки (1, 1).Вставьте специальные повторяющиеся записи. Ячейки (1, 1).Целая колонка. Скрытый = True End Sub
4. Почему вы вставляете ширину столбца, а затем скрываете столбец? вставить:= 8 — это вставить:=xlPasteColumnWidths.
Ответ №1:
Теперь я знаю ответ на свой вопрос..
Private Sub CommandButton1_Click()
Dim DbExtract, DuplicateRecords As Worksheet
Set DbExtract = ThisWorkbook.Sheets("Sheet2")
Set DuplicateRecords = ThisWorkbook.Sheets("Sheet1")
DbExtract.Range("E:E").SpecialCells(xlCellTypeVisible).Copy
DuplicateRecords.Cells(1, 1).PasteSpecial
DuplicateRecords.Cells(1, 1).EntireColumn.Hidden = True
End Sub