Як скопіювати Undefined діапазон з Excel та минулого у документі Word за допомогою макросу Word. Я пробував нижче, але не зміг досягти успіху. Ви можете, будь ласка, допоможіть мені.
Примітка. Якщо я згадую діапазон, то він працює нормально, тоді як я хочу використовувати цей код NumberOfRows = .Range("A65536").End(xlUp).Row
в слово макрос - я отримую помилку часу виконання 1004.
Sub InputExcel()
Set appExcel = CreateObject("Excel.Application")
Dim INP_File As Variant
Dim lngRows As Long
Dim LenMgs As Long
Dim NumberOfRows As String
INP_File = appExcel.GetOpenFilename("Excel files (*.xlsx;*.xls),*.xlsx;*.xls", 2)
appExcel.Workbooks.Open INP_File
If INP_File > 0 Then
Selection.Find.ClearFormatting
With Selection.Find
.Text = "Sample"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.HomeKey Unit:=wdLine
LenMgs = appExcel.Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.Count
"NumberOfRows = appExcel.Worksheets("Sheet1").Range("A65536").End(xlUp).Row
Set Rng = appExcel.Worksheets("Sheet1").Range(appExcel.Worksheets("Sheet1").Cells(4, 1), appExcel.Worksheets("Sheet1").Cells(LenMgs, 5))
"Rng.Copy
"appExcel.Worksheets("Sheet1").Range("A1:B5").Copy - This is working !! if I specify the range.
Selection.Paste
End If
appExcel.ActiveWorkbook.Close
appExcel.Quit
Set appExcel = Nothing
End Sub
Відповіді:
1 для відповіді № 1Ви отримуєте помилку, тому що xlUp
є константою Excel, і вона не розпізнається MS Word, оскільки ви використовуєте Late Binding для з'єднання з Excel.
Ви повинні заявити це як верхній частині вашого коду
Const xlup = -4162
Також ви можете прочитати ЦЕ для пошуку останнього ряду в Excel?