Excelmacros如果包含其他
我有一个Excelmacros,将列从一个表单转换为新表单。
Sub Macro1() ' ' Macro1 Macro ' ' Sheets.Add.Name = "Sheet2" Worksheets("Sheet2").Cells(1, 1).Value = "Column A" Worksheets("Sheet2").Cells(1, 2).Value = "Column B" Worksheets("Sheet2").Cells(1, 3).Value = "Column C" Worksheets("Sheet2").Cells(1, 4).Value = "Column D" Worksheets("data").Activate SourceColumn = 2 SourceRow = 2 Cells(SourceRow, 1).Activate TargetRow = SourceRow targetcolumn = 1 batchValue = InputBox("Enter value for Batch ID column") While Cells(1, SourceColumn).Value <> "" While ActiveCell.Value <> "" Worksheets("Sheet2").Cells(TargetRow, 1).Value = batchValue Worksheets("Sheet2").Cells(TargetRow, targetcolumn + 1).Value = ActiveCell.Value Worksheets("Sheet2").Cells(TargetRow, targetcolumn + 2).Value = Worksheets("Data").Cells(1, SourceColumn).Value Worksheets("Sheet2").Cells(TargetRow, targetcolumn + 3).Value = Worksheets("Data").Cells(SourceRow, SourceColumn).Value SourceRow = SourceRow + 1 targetcolumn = 1 TargetRow = TargetRow + 1 Cells(SourceRow, 1).Activate Wend SourceColumn = SourceColumn + 1 SourceRow = 2 Cells(SourceRow, 1).Activate Wend With Worksheets("Sheet2").Sort .SetRange Range(Cells(2, 1), Cells(TargetRow, 3)) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
这工作正常,但我需要修剪“列C”括号在While语句中,我可以通过使用中间函数更新下面的代码成功修剪括号。
Worksheets("Sheet2").Cells(TargetRow, targetcolumn + 2).Value = mid(Worksheets("Data").Cells(1, SourceColumn).Value, 2, 36)
但是我发现,有一些价值观有不同的长度需要….
mid(Worksheets("Data").Cells(1, SourceColumn).Value, 2, 10)
所以我需要插入..
如果C列中包含单词“parent”,那么mid([C列],2,10)else中间([C列] 2,36)
什么是完成这项工作最简单的方法?
谢谢!
如果您只需要修剪第一个和最后一个字符,则可以在函数参数中使用string的长度:
Worksheets("Sheet2").Cells(TargetRow, targetcolumn + 2).Value = mid(Worksheets("Data").Cells(1, SourceColumn).Value, 2, Len(Worksheets("Data").Cells(1, SourceColumn).Value) - 2)
这将适用于任何长度的string。