Tag: 删除行

Excel VBA – 从单列filter删除多个值的行

我已经编写了基于单列filter的单一input值删除行的代码,我想编辑这个来处理来自同一列filter的多个input值。 数据库的标题在A4:Z上。 Option Explicit Sub Test() Dim ws As Worksheet Dim lastRow As Long Dim rng As Range Dim myValue As Variant 'set sheet reference Set ws = ActiveSheet 'turn off autofilter ws.AutoFilterMode = False 'get last row lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 'set range to filter Set rng = ws.Range("A4:Z" & lastRow) 'get user input […]

VBA – RemoveAllDuplicateButOne()

我有一个有18000个客户的数据表。 这个列表中的大约10%是同一个客户的重复,有时它们被重复多次。 我想使用VBA来查找所有重复项,并删除整个行的数据; 只留下一个数据行(1个客户)。 我在网上遇到这个代码: Sub RemoveAllDuplicateButOne() Dim LR As Long: LR = Range("A" & Rows.Count).End(xlUp).Row ActiveSheet.Range("A1:A" & LR).RemoveDuplicates Columns:=1, Header:=Name End Sub 但是,这个VBA代码将只删除行A中的删除重复项,并将删除该列,并将列从下面的行移动到刚被删除的列空间中。 意味着你有各种各样的客户数据混合。 我已经尝试了下面的代码,但它不适合我: ActiveSheet.Range("A1:W1800").RemoveDuplicates Columns:=Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19), Header:=xlYes 我可以用作标识符的列是列A(IP地址),Coumn G(电子邮件地址),列H(电话号码)。 理想情况下,我想首先使用列G,然后H,然后A运行VBA。 为了澄清我想删除一个确定的重复整行。 我很抱歉,如果这似乎是一个愚蠢的问题,或者也许复杂,我不知道,但我已经四处search,我无法find答案。 任何帮助将不胜感激。 谢谢

VBAmacros使用marlett检查删除未经检查的行

我在VBA中并没有太多的背景知识,但是我正在尝试创build一个macros,在按下button的时候,删除某个范围内没有选中标记的所有行。 我浏览了一些论坛,并了解到一个“马利特”检查,其中该字体中的字符“a”显示为复选标记。 这里是我必须自动生成“marlett检查”的代码,当点击在适当的范围A列中的单元格: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("A10:A111")) Is Nothing Then Target.Font.Name = "Marlett" If Target = vbNullString Then Target = "a" Else Target = vbNullString End If End If End Sub 然后我有另一个macros(分配给一个button),实际上删除button时按下“A”列中没有复选标记的行: Sub delete_rows() Dim c As Range On Error Resume Next […]

基于单元格内容的Excel VBA删除行

我几乎没有vba的经验,我正在尝试编写一个Excelmacros,它将检查列Q中单元格的内容,并删除该列中具有0的行(列Q中的单元格为空,包含文本,或包含0以外的数字,都应保持不变)。 macros应该开始检查Q单元格Q中的单元格,并在遇到包含文本“END”的单元格时停止。 完成后,应该select电子表格左上angular的单元格,这通常是A1,但是我有一个合并的单元格,所以它是A1:K2。 我花了几个小时在本网站和其他网站上查看类似的编码问题。 用我学到的东西写了许多不同版本的这个macros,但是他们要么根本不工作,要么按照预期工作。 这里是我最近的两个最有前景的版本: 'My second to last attempt Sub DeleteRowMacro1() Dim i As Integer i = 11 Do Cells(i, 17).Activate If ActiveCell.Value = 0 Then ActiveCell.EntireRow.Delete End If i = i + 1 Loop Until ActiveCell.Value = "END" Range("A1:K2").Select End Sub 'My last attempt Sub DeleteRowMacro2() Dim i As Integer i = […]

VBA:高效的删除行速度

我的解决scheme需要很长时间才能执行。 我有60k行的文件,它可以更大。 你能帮我把这个过程加快吗? Sub kary() Dim table As Variant Dim Wb As Workbook Dim liczba, i As Long Application.ScreenUpdating = False Set Wb = Application.ActiveWorkbook table = Wb.Worksheets("raport").Range("A1").CurrentRegion i = 8 While Cells(i, 1) <> "" If Cells(i, 11) <= 0 Or Cells(i, 5) = "FV_K" Or Cells(i, 5) = "KFD" Or Cells(i, 5) = […]

excel在某些情况下删除行

如果在G列中有一个以210开头的数字,我怎样才能删除Excel表格的整行。 我不想删除行,如果单元格内有210的地方,但只有当它开始。

VBA错误:对象variables或未设置块variables

我是VBA新手,正在处理一个macros,它将删除材料跟踪电子表格中的重复行,它们是基于标签为“Requisition Number”,“Item”和“PO#”的3个特定列中的匹配元素。 但是,当我尝试设置使用ActiveSheet.Range(Cells(1, colReq.Column).Address()).Activate我的申请单号中的第一个元素ActiveSheet.Range(Cells(1, colReq.Column).Address()).Activate我给出的错误:对象variables或块variables未设置 以下是我的完整代码: Sub DeleteDuplicates() Dim sh As Worksheet Set sh = ThisWorkbook.Sheets("Sheet1") Dim lastRow As Long lastRow = sh.Range("A1", sh.Range("A1").End(xlDown)).Rows.Count Dim colReq As Range Dim colItemReq As Range Dim colPO As Range Dim colType As Range With ActiveSheet.UsedRange.Rows(1) Set colReq = .Find(What:="Requisition Number", LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False) Set colItemReq = .Find(What:="Item", LookAt:=xlWhole, […]

如何从csv文件读取特定数据并将其删除?

我正在编写一个私人教练程序来pipe理客户端,我希望能够从数据库(Excel电子表格)中删除客户端,我也希望能够从另一个数据库(另一个Excel电子表格)中读取他们的计划。 我不确定如何使用Java从电子表格中删除人员。 其次,我不确定如何从电子表格中读取一部分,例如,如果客户的计划从第11行开始到第21行结束,我如何从工作表读取这些数据? 事情是在程序中,我们不会真正知道客户端的计划存储在哪些行,所以我知道,我将不得不使用if语句来比较数据和我正在寻找的。 一旦我从文件中读取数据,我也想删除它。 以下是计划的一个例子: 以下是我现在的代码: if(workoutPlan.isVisible()==true){ BufferedReader br = null; try { br = new BufferedReader(new FileReader("Client Workout Plans.csv")); } catch (FileNotFoundException e1) { e1.printStackTrace(); } String line = ""; String cvsSplitBy = ","; String fullName = null; StringBuilder sb = new StringBuilder(); br = new BufferedReader(new FileReader("Clients.csv")); boolean complete = false; while(complete!=true){ […]

VBA删除行if

我想要做的就是优化我目前的删除行代码。 在这个阶段,这一步花费了很多时间。 Dim miesiac2 As Integer '—>current month miesiac2 = Range("b1").Value Dim LastRow As Long LastRow = [A65536].End(xlUp).Row For i = LastRow To 1 Step -1 If Cells(i, 1) = miesiac2 Then Rows(i & ":" & i).EntireRow.Delete Next i 所以…如果A列等于当前月份EntireRow.Delete任何想法?

值被映射后删除整行

我希望删除每个行后,该值已被映射到另一个表。 以下是我目前的代码。 行If Not IsEmpty(Slave.Cells(i, 3)) Then EntireRow.Delete (不起作用)理想情况下,我希望我的行删除,以便在映射后立即删除行和代码继续前进。 但是,我似乎无法得到这个工作。 它运行的数据相当多,所以它需要简单而有效。 任何想法,我可以做到这一点,或者可能使用包含简单代码的模块? Private Sub CommandButton21_Click() Dim Master As Worksheet 'declare both Dim Slave As Worksheet Application.ScreenUpdating = False Set Master = ThisWorkbook.Worksheets("Unallocated") Set Slave = ThisWorkbook.Worksheets("Convertor") For j = 1 To 5000 '(the master sheet) For i = 1 To 5000 '(the slave sheet) 'for […]