我在查找字符串“是”时循环浏览。如果找到了字符串,我想将单元格中的值复制到它左侧的一列中,并将其粘贴到另一个工作表中。
我正在苦苦挣扎的代码部分是引用包含字符串“ Yes”的单元格偏移量。代码不只是像ActiveCell.Offset(-1,0)
这样的代码吗?
我可能会以错误的方式思考,因此我愿意接受建议。
Sub This_One_Will_Work()
Dim Y_N_Column As Integer, LastColumn As Integer, CurrentRow As Integer, LastRow As Integer, New_Market_Tracker As Range
'need ActiveRow as variable and for it to go up 3 times
Y_N_Column = 2
Last_Open_Row = ThisWorkbook.Worksheets("Markets to Open").UsedRange.Rows.Count
Last_Tracker_Row = ThisWorkbook.Worksheets("Market Tracker").UsedRange.Rows.Count
Set New_Market_Tracker = ThisWorkbook.Worksheets("Market Tracker Template").Range("A1:T1")
'ActiveCell = cell with the offset the "Yes" cell in the Y_N_Column
Do While Y_N_Column <= Last_Open_Row
If ThisWorkbook.Worksheets("Market to Open").Cells(1, Y_N_Column).Value = "Yes" Then
ActiveCell.Offset(0, -1).Copy Sheet6.Range("A1").Offset(Last_Tracker_Row, 0)
'End If
End If
Y_N_Column = Y_N_Column + 1
Loop
End Sub
答案 0 :(得分:1)
Sub This_One_Will_Work()
Dim Y_N_Column As Long, Last_Tracker_Row As Long, Last_Open_Row As Long
Dim LastRow As Integer, New_Market_Tracker As Range
Y_N_Column = 2
Last_Open_Row = ThisWorkbook.Worksheets("Markets to Open").UsedRange.Rows.Count
Last_Tracker_Row = ThisWorkbook.Worksheets("Market Tracker").UsedRange.Rows.Count
Set New_Market_Tracker = ThisWorkbook.Worksheets("Market Tracker Template").Range("A1:T1")
Do While Y_N_Column <= Last_Open_Row
With ThisWorkbook.Worksheets("Market to Open")
If .Cells(1, Y_N_Column).Value = "Yes" Then
Sheet6.Cells(Last_Tracker_Row+1, 1).Value = .Cells(1, Y_N_Column-1).Value
End If
End With
Y_N_Column = Y_N_Column + 1
Loop
End Sub
答案 1 :(得分:1)
您需要VBA吗?您可以使用公式:
=INDEX($A$2:$A$7,SMALL(IF(B$2:B$7="Yes",ROW(A$2:A$7)-ROW(A$2)+1),ROWS(A$2:A2)))
使用 CTRL + SHIFT + ENTER 输入作为数组公式,然后向下拖动。
(您可以将该公式包装在IFERROR([formula],"")
中,以隐藏用尽匹配项时出现的#NUM!
错误。)
答案 2 :(得分:0)
这是我要实现的目标的答案:
formattingDate()