Добрый день!
Разбираюсь сейчас с функцией _Excel_RangeCopyPaste
Пытаюсь задать переменной, в какую строку листа вставить значения и не получается. Получается только если в коде конкретно прописать диапазон, что неудобно.
Взял пример с официального ресурса с описанием данной функции.
Изменил под себя код (код должен брать две строки со второго листа, добавлять на втором листе две строки сверху и помещать туда скопированную строку. Плюс помещать эту же строку на первый лист в 11 строку):
То, что прописано конкретно, типа "1:1", выполняется без проблем, а то, что переменной - не выполняется.
вместо переменной $adr пытался еще указывать $ipp:$ipp, "$ipp:$ipp", все равно строка не вставляется.
Что я делаю не так?
Разбираюсь сейчас с функцией _Excel_RangeCopyPaste
Пытаюсь задать переменной, в какую строку листа вставить значения и не получается. Получается только если в коде конкретно прописать диапазон, что неудобно.
Взял пример с официального ресурса с описанием данной функции.
Изменил под себя код (код должен брать две строки со второго листа, добавлять на втором листе две строки сверху и помещать туда скопированную строку. Плюс помещать эту же строку на первый лист в 11 строку):
Код:
#include <Excel.au3>
#include <MsgBoxConstants.au3>
; Create application object and open an example workbook
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeInsert Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\1.xls")
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeInsert Example", "Error opening workbook '" & @ScriptDir & "\1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf
Global $ipp = 11
Global $adr = """" & $ipp & ":" & $ipp & """"
MsgBox($MB_SYSTEMMODAL, "Кот Атос", $adr)
; Copy
_Excel_RangeCopyPaste($oWorkbook.Worksheets(2), "3:3")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 3", "Error copying rows." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 3", "Rows 1+2 successfully copied from worksheet 2 to the clipboard.")
; Insert 2 rows before row 1 on worksheet 2
_Excel_RangeInsert($oWorkbook.Worksheets(2), "1:2")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeInsert Example 3", "Error inserting rows." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeInsert Example 3", "Rows successfully inserted on worksheet 2.")
; Paste the range written by Example 3 from the clipboard to the active worksheet.
; Only values without formatting will be pasted.
_Excel_RangeCopyPaste($oWorkbook.Worksheets(2), Default, "1:1", Default, $xlPasteValues)
_Excel_RangeCopyPaste($oWorkbook.Worksheets(1), Default, $adr, Default, $xlPasteValues)
То, что прописано конкретно, типа "1:1", выполняется без проблем, а то, что переменной - не выполняется.
вместо переменной $adr пытался еще указывать $ipp:$ipp, "$ipp:$ipp", все равно строка не вставляется.
Что я делаю не так?