根据另一列中的值select一列中的一组单元格

我有以下forms的excel中的大量数据


AB 1 stuff1 6 stuff2 3 stuff3 1 stuff4 1 stuff5 7 stuff6 3 stuff7 2 stuff8 . . . . . . 5 stuffn 

和我想要的是一些VBA代码,将selectB列中有一个“1”的所有单元格 – 我将使用此设置在我的代码的另一部分做一些任务

有任何想法吗?

谢谢

这应该工作:

 Sub SelectCellsInColBBasedOnColA() Dim TheSheet As Worksheet If TypeOf ActiveSheet Is Worksheet Then Set TheSheet = ActiveSheet Else Exit Sub End If Dim Row As Integer Dim CellsToSelect As String For Row = 1 To TheSheet.Range("A" & CStr(TheSheet.Rows.Count)).End(xlUp).Row If TheSheet.Range("A" & CStr(Row)).Value = 1 Then If CellsToSelect <> "" Then CellsToSelect = CellsToSelect & "," CellsToSelect = CellsToSelect & "B" & CStr(Row) End If Next Row TheSheet.Range(CellsToSelect).Select End Sub 

我不知道你在做什么,但是对于这一步,你可以在列C =if(a1=1,b1,"")做到这一点。
然后在列c上应用filter并select非空白选项
那么你可以select整个列c

总是有ADO。

 'Reference: Microsost ActiveX nn Object Library ' 'but it is not necessary, Dim rs and cn as object ' 'if you do not wish to use a reference ' Dim rs As ADODB.Recordset Dim cn As ADODB.Connection 'From: http://support.microsoft.com/kb/246335 ' strFile = Workbooks(1).FullName strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _ & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";" Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cn.Open strCon 'Substitute a name range for [Sheet1$] ' 'or include a range of cells : [Sheet1&A1:C7] ' 'F1 is field 1, because we have no header (HDR: No) ' strSQL = "SELECT * FROM [Sheet3$] " _ & "WHERE F1=1" rs.Open strSQL, cn 'Write out to another sheet ' Worksheets(2).Cells(2, 1).CopyFromRecordset rs