【发布时间】:2020-02-27 19:02:23
【问题描述】:
我有一个文件,其中有 8 个以上的“销售”列分布在我的工作表中。我尝试了以下代码:如果任何销售单元格有“Title Transfer”,那么第 51 列将有一个“x”。
Option Explicit
Public Const colTTransfer As Long = 51
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastColumn As Long
Dim counter As Long
lastColumn = Me.Cells(1, Me.Columns.Count).End(xlToLeft).Column
If Me.Cells(1, Target.Column).Value = "Sales" Then
For counter = 1 To lastColumn
If Me.Cells(Target.Row, counter).Value = "Title Transfer" Then
Me.Cells(Target.Row, colTTransfer).Value = "x"
End If
Next counter
End If
End Sub
但是,我意识到我最初的目的还有更多,而且上面的代码并不灵活。我的代码检查所有 Title Transfer 的销售单元格,但它们没有反映同一行中其他销售单元格的更改。
例如,如果我的第一个销售列中的一个单元格有 Title Transfer,那么第 51 列将返回一个 x。如果同一行中第二个销售列中的单元格具有不同的值,例如Green,第 51 列中的 x 应该被删除(我的代码不能)
所以我想知道是否有办法只为具有Title Transfer 的last 销售列返回x?
例如,假设这些事件发生在同一行,其中:
- 第 1 个销售列有
Green,第 51 列保持空白 - 第 2 列的销售额为
Title Transfer,第 51 列的为x - 第 3 列的销售额为
Rollup,第 51 列变为空白 - 第 4 列的销售额为
Red,第 51 列保持不变 - 第 5 列有
Title Transfer,第 51 列现在有x等等
这是我的数据的样子:
| Title | Engine Family | Market Segment | Customer | Engine Model | S/N | Build Spec | ACTL.FINISH | Sales Order | Item | Committed Date | EPS Date | Target | Sales | Production | Day 1 | Status | Sales | Production | Day 2 | Status | Sales | Production | Day 3 | Status | Sales | Production | Day 4 | Status | Sales | Production | Day 5 | Status | Sales | Production | Day 6 | Status | Sales | Production | Day 7 | Status | Sales | Production | Day 8 | Status | Status | Comments | MB51 Shipped | FPS? | Plant | Title Transfer |
|--------|------------------|----------------|----------|--------------|-----|------------|-------------|-------------|-------|----------------|------------|--------|-------|------------|-------|--------|----------------|------------|-------|--------|--------|------------|-------|--------|-------|------------|-------|--------|----------------|------------|-------|--------|--------|------------|-------|--------|----------------|------------|-------|--------|-------|------------|-------|--------|--------|----------|--------------|------|-------|----------------|
| Rollup | PS | APU | HAC | T-62T-46C12 | 1 | BS1 | 0000-00-00 | 0 | 0 | 2019/12/31 | 2019/12/31 | | Green | | | | Title Transfer | | | | Rollup | | | | Red | | | | Title Transfer | | | | Rollup | | | | Title Transfer | | | | | | | | | | | | | x |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
请告知我如何使它以这种方式工作。非常感谢任何帮助。谢谢
【问题讨论】:
-
能否请edit your question 提供样本数据和期望的结果?
-
您需要显示多行来证明您的问题... 显示一些示例数据,清楚地显示您要解决的问题。看到实际存在的问题可能会使调试变得更容易。
-
@cybernetic.nomad 抱歉,我已在帖子中添加了数据。期望的结果也写在您在帖子中看到的那些要点中。谢谢
-
@urdearboy 抱歉,我的问题与我相信的行级别有关,我真的不知道如何通过更多行来反映这一点。我已经在帖子中的这些要点下进行了解释
-
“第一个销售列有绿色”--> 我在您的示例行中看不到“绿色”...与“标题转移”和“红色”相同。因此需要更多的行。 This may help