Warm tip: This article is reproduced from serverfault.com, please click

excel-在特定工作表的某些列中转换公式

(excel - Converting formulas in certain column for specific worksheet)

发布于 2020-11-28 11:26:03

我想让我的宏插入一个公式,然后将其计算结果转换为仅适用于A列的值。

它似乎可以在Sheet3上工作,但是完全忽略了sheet2

    Private Sub FillRows2()
  '
  Sheets("Sheet2").Range("A14:A" & Sheets("Sheet2").Range("J" & Rows.Count).End(xlUp).Row).Formula = "Formula here"
  Sheets("Sheet3").Range("A8:A" & Sheets("Sheet3").Range("J" & Rows.Count).End(xlUp).Row).Formula = "Formula here"
    
    
    Dim sh  As Worksheet

    For Each sh In ThisWorkbook.Sheets
        If sh.name = "Sheet2" Or sh.name = "Sheet3" Then
                With Range(Range("A1"), Range("J" & Rows.Count).End(xlUp))
                    .Value2 = .Value2
                End With
            End If
    Next sh
    
  
  Sheets("Sheet2").Range("B14:B" & Sheets("Sheet2").Range("J" & Rows.Count).End(xlUp).Row).Formula = "Formula here"
  Sheets("Sheet3").Range("B8:B" & Sheets("Sheet3").Range("J" & Rows.Count).End(xlUp).Row).Formula = "Formula here"
  '
  Sheets("Sheet2").Range("G14:G" & Sheets("Sheet2").Range("J" & Rows.Count).End(xlUp).Row).Formula = "Formula here"
  Sheets("Sheet3").Range("G8:G" & Sheets("Sheet3").Range("J" & Rows.Count).End(xlUp).Row).Formula = "Formula here"
  
End Sub
Questioner
araau11
Viewed
0
kevin9999 2020-11-29 12:42:32

如果稍微调整代码,就可以达到你想要的结果。以下内容已经过测试,可以使用一个简单的公式来测试对我的转换,以测试对值的转换。

Option Explicit
Sub FillRows2()

Sheets("Sheet2").Range("A14:A" & Sheets("Sheet2").Range("J" & Rows.Count).End(xlUp).Row).Formula = "=5*5"
Sheets("Sheet3").Range("A8:A" & Sheets("Sheet3").Range("J" & Rows.Count).End(xlUp).Row).Formula = "=5*5"
  
Dim sh As Worksheet

For Each sh In Sheets(Array("Sheet2", "Sheet3"))
    With sh.Range("A1:A" & sh.Range("A" & Rows.Count).End(xlUp).Row)
        .Value = .Value
    End With
Next sh

Sheets("Sheet2").Range("B14:B" & Sheets("Sheet2").Range("J" & Rows.Count).End(xlUp).Row).Formula = "Formula here"
Sheets("Sheet3").Range("B8:B" & Sheets("Sheet3").Range("J" & Rows.Count).End(xlUp).Row).Formula = "Formula here"

Sheets("Sheet2").Range("G14:G" & Sheets("Sheet2").Range("J" & Rows.Count).End(xlUp).Row).Formula = "Formula here"
Sheets("Sheet3").Range("G8:G" & Sheets("Sheet3").Range("J" & Rows.Count).End(xlUp).Row).Formula = "Formula here"
  
End Sub