我有一个有30个工作表的Excel工作簿。每个工作表看起来是这样的Excel中的动态逻辑Vba
现在我想后“我”栏目(新列会十)插入一列和值应该是这样的
对于优惠券的一些事情2.000(4-7行)新列J中的值应为= i4-i5(对于所有J4,5,6,7) 这应该针对每个优惠券重复。 我试图录制宏,但没有帮助。 请提供me采样逻辑来动态处理。 预先感谢您。
我有一个有30个工作表的Excel工作簿。每个工作表看起来是这样的Excel中的动态逻辑Vba
现在我想后“我”栏目(新列会十)插入一列和值应该是这样的
对于优惠券的一些事情2.000(4-7行)新列J中的值应为= i4-i5(对于所有J4,5,6,7) 这应该针对每个优惠券重复。 我试图录制宏,但没有帮助。 请提供me采样逻辑来动态处理。 预先感谢您。
从您的描述中,它听起来像这就是你正在寻找的。如果不是这样,请让我知道。
Sub AddNewColumn()
Dim sColumnToIns, sCouponField, sCouponGroup, _
sFormula, sCell1, sCell2, sMarketValueField, sColumnToInsHeader, sTopCellOfData
Dim rData As Range
Dim rRng As Range
Dim rCell As Range
Dim oSh As Worksheet
'Make sure you change the sheet to reflect
'the object name of your sheet.
Set oSh = Sheet2
sColumnToIns = "J"
sColumnToInsHeader = "New Column"
sCouponField = "B"
sMarketValueField = "I"
sTopCellOfData = "A4"
'Insert a new column
Sheet1.Range(sColumnToIns & ":" & sColumnToIns).Insert xlShiftToRight
'Get lowest cell in used range
Set rRng = oSh.UsedRange.Cells(oSh.UsedRange.Rows.Count, oSh.UsedRange.Columns.Count)
Set rData = oSh.Range(sTopCellOfData, rRng)
'Set the header text
rData.Range(sColumnToIns & "1").Offset(-1).Value = sColumnToInsHeader
'Go through the entire data set. Whenever the value in the 'Coupon'
'column changes, put a formula the subtracts the top market value
'from the next market value down.
sCouponGroup = ""
For Each rCell In rData.Columns(sCouponField).Cells
If sCouponGroup <> rCell.Value Then
sCouponGroup = rCell.Value
sCell1 = rCell.EntireRow.Columns(sMarketValueField).Address
sCell2 = rCell.EntireRow.Columns(sMarketValueField).Offset(1).Address
sFormula = "=" & sCell1 & "-" & sCell2
End If
rCell.EntireRow.Columns(sColumnToIns).Formula = sFormula
Next
End Sub
谢谢晶体管.....你是一半的方式....但给了我一个很好的示例...我会尝试这个 –
任何时间!如果您需要更多帮助,请告诉我。 – transistor1
你有任何代码吗?你的照片不显示。 –
@TIM ....我很抱歉....不知道我做错了什么,以便图像没有弹出....我会尝试重新加载它..check n让我知道它是否可见 –