批量更新不同目录指定工作簿工作表单元格内容
1、 新建一个Excel文件,按ALT+F11打开VBE编辑器,新建一个模块,粘贴如下代码:
Option Explicit
Sub 批量修改不同目录指定工作簿工作表单元格内容()
Dim d As Object, f, h, l, t As String, wb As Workbook, th As Workbook, i As Integer, shname As String
shname = "Sheet1" '此处设置需要更改的工作表名称,这里默认是sheet1
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set th = ThisWorkbook
gh:
h = InputBox("请输入类似1、2、3……65536", "请正确输入行坐标")
If h = "" Then Exit Sub
If h Like "*[!0-9]*" Or h > 65536 Then GoTo gh
gl:
l = InputBox("请输入类似A、B、C……IV", "请正确输入列坐标")
If l = "" Then Exit Sub
If l Like "*[!a-zA-Z]*" Or l Like "[a-zA-Z]*" = False Or _
(l Like "[a-zA-Z]?" And l Like "?[a-vA-V]" = False) Then GoTo gl
t = InputBox("更新内容", "请输入内容")
Set d = Application.FileDialog(msoFileDialogFilePicker)
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.InitialFileName = ThisWorkbook.Path & "\"
.Title = "选择需要修改的Excel文件"
.InitialView = msoFileDialogViewDetails
.Filters.Add "Excel文件", "*.xls;*.xlsx", 1
.Show
If .Show Then
For Each f In .SelectedItems
If Dir(f) <> th.Name Then '判断是否为当前工作表
Set wb = Workbooks.Open(f)
For i = 1 To wb.Sheets.Count
If wb.Sheets(i).Name = shname Then '判断是否存在指定的工作表
wb.Sheets(i).Cells(h, l) = t
wb.Save
End If
Next i
wb.Close
Else
For i = 1 To th.Sheets.Count
If th.Sheets(i).Name = shname Then th.Sheets(i).Cells(h, l) = t
Next i
End If
Next
End If
End With
Set d = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

2、 按ALT+F8,打开宏对话框,执行“批量修改不同目录指定工作簿工作表单元格内容”宏。

3、 在弹出的“请正确输入行坐标”对话框中,假设输入2,点确定。

4、 在弹出的“请正确输入列坐标”对话框中,假设输入B,点确定。

5、 在弹出的“请输入内容”对话框中,假设输入:啊不错的风格hi,点确定。

6、 在弹出的“选择需要修改的Excel文件”打开框中,选中需要修改的Excel文件,点确定。

7、 最终的效果如下图:
