私は6枚のブックを持っています。私はFor Eachでそれらを歩いています。課題は: 1)指定された範囲のすべてのセルを歩くExcel VBAは多くの出現をスキップします
2)セルが空でなく、唯一の数字が含まれている場合は、セル "мм"の最後に追加します。それ以外の場合は、このセルをスキップします。
実際、スクリプトは最初のシート(ワークシート)のみに役立ちます。他のシートに変更はありません。なぜこのようなことが起こるのか分かりません。私は、コードにいくつかのエラーや間違いがあると思うが、私はそれを二重にチェックして、すべてが正しいと思われる。助けてください:)
Sub SaveWorksheetsAsCsv()
Dim xWs As Worksheet
Dim xDir As String
Dim folder As FileDialog
Dim r As Range
Dim rr As Range
Dim rrrrrr As Range
Dim cell As Range
k = Cells(Rows.Count, "A").End(xlUp).Row
Set folder = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> -1 Then Exit Sub
xDir = folder.SelectedItems(1)
For Each xWs In Application.ActiveWorkbook.Worksheets
If xWs.Name Like "Worksheet" Then
Set r = Range("FA2:FA" & k)
For Each cell0 In r
If IsEmpty(cell0.Value) = False And IsNumeric(cell0.Value) = True Then
cell0.Value = cell0.Value & " мм"
End If
Next
'xWs.Columns(41).EntireColumn.Delete
End If
If xWs.Name Like "Worksheet 1" Then
Set rr = Range("AG2:AG" & k)
For Each cell1 In rr
If IsEmpty(cell1.Value) = False And IsNumeric(cell1.Value) Then
cell1.Value = cell1.Value & " мм"
End If
Next
'xWs.Columns(126).EntireColumn.Delete
End If
If xWs.Name Like "Worksheet 5" Then
Set rrrrrr = Range("FR2:FR" & k)
For Each cell5 In rrrrrr
If IsEmpty(cell5.Value) = False And IsNumeric(cell5.Value) Then
cell5.Value = cell5.Value & " мм"
End If
Next
End If
xWs.SaveAs xDir & "\" & xWs.Name, xlCSV, local:=True
Next
End Sub
、これはあなたのループの内側にあると、完全修飾する必要があります。 'k = xWs.Cells(xWs.Rows.Count、" A ")。End(xlUp).Row' – braX