Member 13598044 Ответов: 1

Мешают моей обработки данных с #ссылка в Excel файл


- Привет!

Я пытаюсь изменить данные файла excel для более легкого импорта в мою базу данных. Я делаю это с помощью 3-х частей макрокода внутри excel.

Вот этот код:

1 - удалить две первые колонки

Sub Del_Columns ()

Columns ("A:B").EntireColumn.Delete

End Sub


2 - Заполните крайний правый столбец значениями из вышеприведенной ячейки, заканчивающимися при достижении нового значения.

Sub FillBlanks()

Dim wks As Worksheet
Dim rng As Range
Dim LastRow As Long
Dim col As Long

Set wks = ActiveSheet
with wks

col = .Range("M").Column
Set rng = .UsedRange
LastRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
Set rng = Nothing
On Error Resume Next
Set rng = .Range(.Cells(2, col), .Cells(LastRow, col)) _ 
.Cells.SpecialCells(xlCellTypeBlanks))
On Error GoTo 0

If rng Is Nothing Then
MsgBox "No Blanks Found"
Exit Sub

Else
rng.FormulaR1C1 = "=R[-1]C"
End If

With .Cells(1, col).EntireColumn
.Value = .Value
End With
End With
End Sub


3 - Удалить все строки, которые имеют пустые ячейки внутри них (взяв col F в качестве примера, для удаления всей строки, когда она пуста. Как это всегда бывает)

Sub DeleteBlankRows()
On Error Resume Next
Columns ("F").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub


Резюме

Когда я делаю это, я получаю #REF на некоторых ячейках, что я должен сделать, чтобы предотвратить/исправить это?

Кроме того; является ли этот код лучше для числа 2 (Заполните ячейки с вышеуказанным значением):

Sub FillCellsFromAbove()

Application.ScreenUpdating = False
On Error Resume Next
With Columns(1)
.SpecialCells(xlCellTypeBlanks).Formula = "=R[-1]C"
.Value = .Value

End With
Err.Clear
Application.Updating = True
End Sub


Что я уже пробовал:

Я пробовал !отчетливо, но это не работает.

1 Ответов

Рейтинг:
1

Patrice T

Цитата:
Когда я делаю это, я получаю #REF на некоторых ячейках, что я должен сделать, чтобы предотвратить/исправить это?

Некоторые ячейки используют в своих формулах значения из первых 2 столбцов.
Попробуйте работать с копией, которая имеет только значения, а не Формулы.