Я не являюсь мастером в VBA, но у меня есть опыт работы от 2 до 3 месяцев, и я могу помочь вам импровизировать ваш код, учитывая линию на линии. Я не знаю о других версиях Excel, но работаю в 2003 году.
Иногда я обнаруживал ошибки времени выполнения, используя только книгу. Я не понимал причину, поэтому я решил использовать Excel.Workbook
Dim wkbLink As Workbook, make it as Dim wkbLink As Excel.Workbook Instead
Видя ваш код, я думаю, что вы хотите обратиться к книге, попробуйте использовать их.
Set wkbLink = GetObject(linkSrcFile) ' I have no idea about this but
Set wkbLink = workbooks.open(linksSrcFile) ' It works perfect.
Set targetWks = targetWkb.Worksheets("Sheet1") ' right way
Set targetWks = targetWkb.Worksheets(1) 'Can also refer to sheet 1 like these
Чтобы найти количество столбцов
nbColumns = Range("1:1").Cells.SpecialCells(xlCellTypeConstants).Count ' No idea
Используйте эти
Columnz = Thisworkbook.workSheets(1).Cells(1, Columns.Count).End(xlToLeft).Column
else
Thisworkbook.worksheets(1).activate
Columnz = Activesheet.Cells(1, Columns.Count).End(xlToLeft).Column
Я не вижу, на каком листе вы ссылаетесь, чтобы найти количество столбцов, его сложно выяснить, попробуйте сослаться на объект.
и
If Columns(i).Hidden = False Then 'make it as below
if activesheet.columns(i).Entirecolumn.Hidden= false then
Это не эти
wksCurrent.Range("A1", "P1").Copy ' its wrong make it like below
wksCurrent.Range("A1:P1").Copy
Я не понимаю, что вы пытаетесь сделать, но я верю, что вы пытаетесь скопировать строку из A1: P1 на другой лист, и вы должны сделать это так
wbk_1.sheets(1).range("A1:P1").copy
wbk_2.sheets(1).activate
activesheet.range("A1").select
activesheet.paste ' now_wbk_2.sheets(1) has copied row in its first row
Возможно, вы используете их, чтобы найти количество строк
wksLinkWkb.Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
Вы не имеете в виду какую-либо рабочую книгу, я не ожидаю, что она будет работать. Используйте эти
Rowz = Thisworkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row ' to count no of rows
Я только что ответил за режимы копирования и вставки, попробуйте прочитать мой ответ, он поможет вам Как я могу копировать между двумя открытыми экземплярами Excel в VBA?
Больше помощи. спроси меня, я тебе помогу. Спасибо