VBA не может обнаружить тексты в ячейках - PullRequest
0 голосов
/ 20 сентября 2019

Сейчас я работаю над проектом, автоматически определяющим конкретные тексты в ячейках и делающим соответствующие действия, однако сейчас я застрял на первом шаге.Файлы, над которыми я работаю, немного странные, по некоторым причинам VBA не может обнаружить большинство текстов в ячейках.Однако, если я использую debug.print wb.worksheets(1).cells(x, x).value, он будет отображаться нормально.

Не знаете, в чем причина?Я проверил формат этих ячеек и попытался немного изменить, но это не работает.

Вот коды, которые у меня есть.Чтобы избежать путаницы, я использую «//» для обозначения моих комментариев.

Option Explicit

Sub testlink()

Dim fileTxt As Variant
Dim wb As Workbook
Dim OFS As Object
Dim createddate As String
Dim fuckingword As String
Dim cl As Range
Dim i As Integer
Dim j As Integer
Dim lr As Integer
Dim count As Integer
Dim startr As Integer
Dim fixedr As Integer
Dim endr As Integer
Dim pcc As Integer
Dim pnc As Integer
Dim PIlc As Integer
Dim mc As Integer
Dim dc As Integer
Dim Lc As Integer
Dim Wc As Integer
Dim Hc As Integer
Dim Dominantc As Integer
Dim Weightlbsc As Integer
Dim Weightgramsc As Integer
Dim ccc As Integer
Dim qcc As Integer
Dim pdc As Integer
Dim ppc As Integer
Dim Tcc As Integer
Dim nocc As Integer
Dim ppc2 As Integer
Dim pc()
Dim pn()
Dim PIl()
Dim m()
Dim d()
Dim L()
Dim W()
Dim H()
Dim Dominant()
Dim Weightlbs()
Dim Weightgrams()
Dim cc()
Dim qc()
Dim pd()
Dim pp()
Dim Tc()
Dim noc()
Dim pp2()

On Error Resume Next

Application.AskToUpdateLinks = False
Application.DisplayAlerts = False

fileTxt = Application.GetOpenFilename("ALL files (*.*), *.*", , "Please choose file", MultiSelect:=True)

    For i = 1 To UBound(fileTxt)
        'Debug.Print Right(fileTxt(i), Len(fileTxt(i)) - InStr(1, fileTxt(i), "."))
        If Right(fileTxt(i), Len(fileTxt(i)) - InStr(1, fileTxt(i), ".")) Like "xls*" Then
            Debug.Print fileTxt(i)
            Set wb = Workbooks.Open(fileTxt(i))
            'Set OFS = CreateObject("Scripting.Filesystemobject")
            'createddate = OFS.GetFile(fileTxt(i)).datecreated
            Debug.Print wb.Worksheets(1).Cells(23, "A")
            Else
            MsgBox "The macro currently only supports EXCEL file!"
        End If // it works perfectly well till here

        For Each cl In wb.Worksheets(1).UsedRange
            Debug.Print cl.value // here it only shows text in one cell. Apparently it cannot detect contents in other cells so they won't show up. Since it has error here everything behind could be ignored for now.
            'If cl.Value <> "" Then
            '    Debug.Print cl.Address
            '    fixedr = cl.Row
            '    startr = cl.End(4).Row
            '    endr = cl.End(4).End(4).Row
            'End If
        Next cl

    Debug.Print fixedr, startr, endr

    Next i

Application.AskToUpdateLinks = True
Application.DisplayAlerts = True

End Sub

Опять же, это не полный код, так как ошибка начинается в этой части, поэтому нет смысла продолжатьЭто.Сначала мне нужно решить проблему здесь.Ваша помощь будет оценена.Я впервые столкнулся с такой проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...