excel - 工作表循环、数组

标签 excel vba

我是初学者,我想在 Excel 文件的所有工作表中进行循环,执行此特定操作:将格式更改为具有特定标题的所有列。 不幸的是,下面的代码仅适用于事件工作表,而不适用于事件工作簿中的其他工作表。你知道其中有什么问题吗?

非常感谢

Sub loop()

Dim timelist As Variant, sht as worksheet, rcell As Range, 
rrow As Range, t As Integer

timelist = Array("Created", "Creation")

For Each sht In ActiveWorkbook.Worksheets

Set rrow = Range("A1.Z1")
For t = LBound(timelist) To UBound(timelist)
For Each rcell In rrow
rcell.Select
if rcell.Value = timelist(t) Then
   ActiveCell.Offset(1, 0).Range("A1").Select
          Range(Selection, Selection.End(xlDown)).Select
          Selection.NumberFormat = "dd/mm/yyyy hh:mm:ss"
    End If
Next rcell
Next t
Next sht

End Sub

最佳答案

循环工作表不会激活当前循环工作表,因此您必须限定对其的所有范围引用

您可以通过“With sht...End With” block 并在 block 内的所有范围引用之前添加一个点来做到这一点

并且不要“选择”任何东西,而只使用范围对象

For Each sht In ActiveWorkbook.Worksheets
    With sht 
        Set rrow = .Range("A1:Z1")
        For t = LBound(timelist) To UBound(timelist)
            For Each rcell In rrow
                If rcell.Value = timelist(t) Then
                    .Range(rcell.Offset(1, 0), rcell.Offset(1, 0).End(xlDown)).NumberFormat = "dd/mm/yyyy hh:mm:ss"
                End If
            Next rcell
        Next t
    End With
Next sht

关于excel - 工作表循环、数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53899731/

相关文章:

vba - 在工作表vba中查找特定列标题的第1次、第2次、第3次和第4次出现

vba - 如何对带有数字的excel值进行排序

vba - 通过 Excel VBA 保存并关闭 powerpoint

PHP Excel 导入到 MYSQL 数据库在本地主机上工作正常,但在在线服务器上不行

vba - 如何在VBA中根据空单元格值删除行

excel - 从一维数组中选择随机项不重复

excel - 数据验证 - Excel 中没有重复项的下拉列表

增加数字的Excel公式

android - 通过 android 手机上的任务调度程序运行 .vbs 脚本

vba - 使用不一致的分隔符拆分字符串