【发布时间】:2020-06-08 16:45:53
【问题描述】:
下午好,
我想在添加新工作表时自动更改公式。 单元格值将大致每 13 步更改一次,它们出现在 excel IF 语句中。 正如您在下图中看到的,我希望有 13 步的增量,因为公式将引用位于 NIM & BADGER 表中每 13 步以下的单元格。 在工作表 CAB1 中这是 G33,在工作表 CAB2 中应该是 G46,在工作表 CAB3 - G59 中,以此类推......
我的公式是基于 IF 语句的,所以可以按照这里的解决方案用 VBA 编写:
接下来,我需要每 13 步更换一次单元格。我在这里发现了一些类似的问题和解决方案:
Increment value on multiple worksheets
我试着写成下面的代码:
Sub Value()
Dim i As Long
Dim xNumber As Long, xValue As Long
Dim xName As String
Dim ws As Worksheet
Application.ScreenUpdating = False
Set ws = Sheets("CAB1")
xNumber = Sheets("NIM & BADGER").Range("R27").Value
xValue = 33
For i = 1 To Number
ws.Copy After:=ActiveWorkbook.Sheets(ws.Index + i - 1)
ActiveSheet.Name = "CAB" & i + 1
Sheets("CAB" & i + 1).Range("E43").Formula = "=IF('NIM & BADGER'!G" & xValue + (13 * i) & "=0,"",'NIM & BADGER'!G" & xValue + (13 * i) & ")"
Next
ws.Activate
Application.ScreenUpdating = True
End Sub
我有一个错误: 应用程序定义或对象定义的错误
调试器指向以下行:
Sheets("CAB" & i + 1).Range("E43").Formula = "=IF('NIM & BADGER'!G" & xValue + (13 * i) & "=0,"",'NIM & BADGER'!G" & xValue + (13 * i) & ")"
如何在添加一个或多个工作表时自动更改这些公式(单元格编号)?
衷心感谢任何帮助。
更新:
我玩了一下引号,但结果还是一样...
Sheets("CAB" & i + 1).Range("E43").Formula = "=IF('NIM & BADGER'!G" & xValue + (13 * i) & "=0,'','NIM & BADGER'!G" & xValue + (13 * i) & "')"
【问题讨论】:
标签: excel vba excel-formula