Создайте макрос и используйте следующий код, чтобы захватить данные и поместить его в новый лист (Sheet2):
Dim strValue As String
Dim strCellNum As String
Dim x As String
x = 1
For i = 1 To 700 Step 7
strCellNum = "A" & i
strValue = Worksheets("Sheet1").Range(strCellNum).Value
Debug.Print strValue
Worksheets("Sheet2").Range("A" & x).Value = strValue
x = x + 1
Next
Сообщенный мне, если это помогает! JFV
Несмотря на соглашение об именах, user32.dll (и другие 32 ... dll) на самом деле 64-битные на 64-битных машинах. Это исторические имена для библиотек DLL, и они остались неизменными независимо от изменений базовой архитектуры. Прочтите эту страницу, чтобы получить более подробную информацию.
Вам не следует не изменять подпись / имя библиотеки DLL, на которую вы ссылаетесь при вызове функций USER32.DLL.
Несмотря на соглашение об именах, на 64-битной машине Windows файл USER32.DLL, который находится в [Windows] \ System32, на самом деле является 64-битной DLL. настоящая 32-разрядная версия USER32.DLL на самом деле находится в папке с именем [Windows] \ SysWow64.
Для получения дополнительной информации см. этот вопрос .
Тот самый то, о чем вам, вероятно, нужно быть особенно осторожным, - это типы данных, которые вы передаете в качестве параметров различным функциям Windows API. Например, функция «SendMessage» в USER32.DLL имеет определенное требование по крайней мере с одним из своих параметров (согласно странице в P / Invoke ).
Ее подпись: lParam. Ваш код БУДЕТ сбой на 64-битной окна. ТОЛЬКО используйте IntPtr, "ref" структура, или структура "out".
3) НИКОГДА не используйте "bool", "int" или "целое число" в качестве возвращаемого значения. Твой core БУДЕТ сбой в 64-битных окнах. ТОЛЬКО используйте IntPtr. Небезопасно использовать bool - pInvoke не может маршалировать IntPtr в логическое значение.
Это «предостережение», похоже, относится к этой конкретной функции (SendMessage), хотя на это я бы обратил особое внимание при вызове любых функций Windows API.