Обрезать значения ячеек в строках и столбцах на разных листах VBA - PullRequest
0 голосов
/ 21 ноября 2018

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

Sub DoSomething()

    'Declare Variables
    Dim i, r, c, count, lastColData, LastRowData, lastRowInput, StartSearch As Long
    Dim shtData, shtInput, shtInputI, shtInputII, shtInputIII, shtInputIV, shtInputV, shtInputVI, shtCopy As Worksheet
    Dim Cell As Range
    Set shtData = Sheets("PQFR")
    Set shtInput = Sheets("INPUT")
    Set shtInputI = Sheets("INPUTI")
    Set shtInputII = Sheets("INPUTII")
    Set shtInputIII = Sheets("INPUTIII")
    Set shtInputIV = Sheets("INPUTIV")
    Set shtInputV = Sheets("INPUTV")
    Set shtInputVI = Sheets("INPUTVI")
    Set shtCopy = Sheets("INPUTR")
    lastColData = shtData.Cells(4, shtData.Columns.count).End(xlToLeft).Column
    LastRowData = shtData.Cells(shtData.Rows.count, "A").End(xlUp).row
    lastRowInput = shtInputI.Cells(shtInputI.Rows.count, "A").End(xlUp).row
    'lastRowData = 10


    'Remove spaces from these sheets:
    shtInput.Cells(r, 32).Value = Trim(shtInput.Cell(r, 32).Value)
    shtInputI.Cells(4, c).Value = Trim(shtInputI.Cells(4, c)).Value
    shtInputII.Cells(4, c).Value = Trim(shtInputII.Cell(4, c)).Value
    shtInputIII.Cells(4, c).Value = Trim(shtInputIII.Cell(4, c)).Value
    shtInputIV.Cells(4, c).Value = Trim(shtInputIV.Cells(4, c)).Value

End Sub

1 Ответ

0 голосов
/ 21 ноября 2018

Это потому, что вы не сделали петлю.Если ты объяснишь мне лучше, что ты хочешь, я могу позволить так, как ты хочешь.

Dim i, r, c, count, lastColData, LastRowData, lastRowInput, StartSearch As Long


For Each Worksheet In ActiveWorkbook.Worksheets
    If Worksheet.Name = "PQFR" Or Worksheet.Name = "INPUT" Then 'please do for the sheets you want your command gonna`s be executed
        Sheets(Worksheet.Name).Select
        lastColData = Cells(4,Columns.count).End(xlToLeft).Column
        LastRowData = Cells(Rows.count, 1).End(xlUp).Row
        lastRowInput = Cells(Rows.count, 1).End(xlUp).Row

        'using c=32 just for input
        If Worksheet.Name = "INPUT" Then
            'using r = 4 fosheets
            For c = 32 To lastColData
                For r = 1 To LastRowData
                    Cells(r, c) = Trim(Cells(r, c).Value)
                Next r
            Next c
        Else
            'using r = 4 for all the other sheets
            For c = 1 To lastColData
                For r = 4 To LastRowData
                    Cells(r, c) = Trim(Cells(r, c).Value)
                Next r
            Next c
        End If
    End If
Next Worksheet
...