【问题标题】:Excel Format Cells based on adjacent cellExcel 根据相邻单元格设置单元格格式
【发布时间】:2013-09-30 08:07:03
【问题描述】:

大家好,

我有一个包含整数、小数和百分比的电子表格,都显示为小数,但用户希望看到它的格式正确。

我将如何使用 VBA 进行更改?

为了让您了解我一直在尝试的内容 - 将其分别放入第 14 列和第 15 列,以便宏读取,如下文更详细说明:

子宏1()

对于范围内的每个单元格("A2")
' 打印当前数字格式 Debug.Print cell.NumberFormat
' 对相邻单元格应用不同的数字格式

' 活动单元格右侧的单元格一
cell.Offset(0, 4).NumberFormat = "@" ' @ 表示文本
下一个

结束子

现在我有 117 000 行和 12 列供这个宏通过,以更正格式。 第 2 列到第 13 列是一年中的月份,第 13 列包含 Selection.Style 的文本版本,第 14 列包含 Selection.NumberFormat,它应该用于格式化它左侧的 12 个单元格。

我似乎无法掌握任何类型的循环来允许循环遍历所有列,希望您能对此提供帮助。

【问题讨论】:

    标签: excel vba format


    【解决方案1】:
    Sub ChangeFormat()
    Dim cell As Range
        For Each cell In Range("B1:N" & Range("N" & Rows.Count).End(xlUp).Row)
            cell.NumberFormat = Range("N" & cell.Row).NumberFormat
        Next
    End Sub
    

    循环中的cell 将是Range("B1:M100") 中的每个单元格。

    【讨论】:

    • 你没有错过.Cells吗?
    • @LS_dev 为什么我需要它? :)
    • 读取第 13 列和第 14 列中的样式和数字格式并将其应用于相关单元格的循环是什么样的?
    • +1 我没有假设Range.Cells 是默认属性,所以我通常会明确使用它。确实,它有效...
    • @Herman 你原来的问题,现在应该解决了。请不要使用已更新的问题或我现在有一个新问题来编辑您的帖子,因为它会使当前的答案无效。而是提出一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多