Tag: with statement

Excel VBA错误

我正在尝试使用VBA自动更改包含pipe道字符“|”的单元格的颜色。 当检测到时,我想代码去除pipe道字符“|” 并将单元格颜色更改为灰色。 代码不起作用,如下所示: With Sheets("DATASHEET").Range("AG1:BG53") Set c = .Find("|", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do c.Value = "" c.Pattern = xlSolid c.PatternColorIndex = xlAutomatic c.ThemeColor = xlThemeColorDark1 c.TintAndShade = -0.249977111117893 c.PatternTintAndShade = 0 Loop While Not c Is Nothing And c.Address <> firstAddress End If End With 当我运行VBA时,出现以下错误: 运行时错误“91”: […]

在添加到计数器之前,如何检查行之前的单元格是否相同

我正在制定一个时间表,每个员工每周查看一个小时。 我已经实施了一些代码,确定员工是否属于公司,无薪假,离开公司,或已经离开。 我想要做的是创build一个表格,告诉我join者,离职者和那些无薪假期的人数。 应用代码sorting我的数据后,它看起来像这样: 在哪里我已经用更有意义的描述取代了之前存在的随机值。 我想创build一个表,这是第一次添加到木匠计数器的值是未join'所以我不重复计数。 例如,身份证1,我不想在第2 – 5周的时候把这个人算作木匠,而只是在第2周。 这是我的代码到目前为止,我正在查看每列的行,然后移动到下一列: Dim LastCol As Long Dim LastRow As Long Dim I As Long Dim Z As Long Dim Q As Long Dim Joined As Integer Dim ws As Worksheet 'set worksheet to use Set ws = Sheets("Sheet1") With ws 'Find last col and row for range […]

删除筛选结果的公式,但如果没有find,则删除所有内容

Dim rng3 As Range Set rng3 = Range("J1").CurrentRegion rng3.AutoFilter Field:=10, Criteria1:="<>", Operator:=xlFilterValues With rng3 With .Offset(1).Resize(.Rows.Count – 1) Application.DisplayAlerts = False .Rows.Delete Application.DisplayAlerts = True End With End With 上面的代码(理论上)过滤“J1”,除了空白(“<>”),然后删除结果。 问题是如果J列中只有空白数据,它将删除所有内容。

表ListObject不限于表的行,而是统计整个表

我使用insert / table命令在excel中创build了两个命名表,并将它们命名为如下所示。 在Excel中,一切看起来都很好。 表House_details的行数是50,包括标题行和包括标题行的Sale_price_schedule 15的行数。 我的相关vba代码是 Set tblHouseDetails = Sheets("House details").ListObjects("House_details") Set tblSalePriceSchedule = Sheets("Sale price schedule").ListObjects("Sale_price_schedule") 'Find the product type, look for the relevant price and insert it into the appropriate house details column With tblHouseDetails.DataBodyRange For iCount = 2 To Rows.Count iTemp = Rows.Count strProductType = Cells(iCount, 5).Value 'The fifth columns is […]

VBA Select Case是多个标准

我有以下一段代码,想修改一下。 基本上每个case is我想检查次要标准。 例如, Case is = "Lottery"我想添加AND range("SalesChannel").value = "SMB" 。 然后我想复制,为每个案件使用不同的值(不SMB)。 这可以做到吗? Private Sub CommandButton1_Click() With LoginPassword.TextBox1.Value Select Case Me.TextBox1.Value Case Is = "Lottery" LoginPassword.Hide SMB_Login CalculateFinancials Case Is = "Charity" LoginPassword.Hide DCS_Login CalculateFinancials Case Is = "Curfew" LoginPassword.Hide Campaign_Login CalculateFinancials Case Is = "Europe" LoginPassword.Hide Eureka_Login CalculateFinancials Case Is = "Promo" LoginPassword.Hide […]

如何通过我的数据扫描我的代码并复制某些选定的数据行并将其粘贴到其他表单中?

所以基本上我有wksht1中的一堆数据,我想扫描以select所有遵守某个if then语句(见下面的代码)的行,然后将它们复制到pastesht。 我有我的代码到目前为止,但它给了我一个错误,在第20行,我不知道我需要修复。 请提前帮忙,谢谢! 1 Sub Try() 2 Dim wksht1 As Worksheet, pastesht As Worksheet 3 Dim LastRowinpastesht As Long 4 5 With ThisWorkbook 6 Set wksht1 = Sheets("AAA") 7 Set pastesht = Sheets("PPP") 8 LastRowinpastesht = pastesht.Cells(Rows.Count, 1).End(xlUp).Row + 1 9 End With 10 11 With wksht1 12 Last1 = Cells(Rows.Count, "B").End(xlUp).Row 13 For […]

将项目添加到With … End With时出现错误91

当我在Do / Withfunction下添加一个项目时,我有一个代码会引发错误91。 (感谢chris neilsen的代码) Dim ws As Worksheet Dim SrchRng As Range Dim SearchValues() As Variant Dim cl As Range, addr As String Dim i As Long SearchValues = Array(217, 317, 298) Set ws = ActiveSheet With ws Set SrchRng = Range(.Cells(1, 7), .Cells(.Rows.Count, 7).End(xlUp)) End With For i = LBound(SearchValues) To UBound(SearchValues) Set […]

UDF在任何地方都返回相同的值

我正在尝试移动平均代码在vba但以下返回相同的价值无处不在。 Function trial1(a As Integer) As Variant Application.Volatile Dim rng As Range Set rng = Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row – a + 1, 2)) trial1 = (Application.Sum(rng)) * (1 / a) End Function

从VBA中的filter中提取唯一值的集合

我有一个文件,其行数可以跨越8列数以万计。 一个特定的列包含周末date。 我必须计算在这个文件中出现的周末数。 有没有一种方法来提取数据,如下图所示? 如果我们能够提取并获得这个集合的数量,那么问题就解决了。 请帮忙。 提前致谢!

计算另一个工作表中的行数

我已经看了build议的问题find我的问题的答案。 最接近的问题叫做:统计另一个Excel工作表中不同的Excel Sheet Sheet中的行数 解决这个问题不适合我。 我正在计算不同工作表中的活动工作表的范围内的行数。 这是我的代码: Sub verbflashcards() Dim wordcount As Long With Worksheets("Verbs") wordcount = .Range(Cells(4, 1), Cells(4, 1).End(xlDown)).Rows.Count End With MsgBox (wordcount) End Sub 我有一个名为Verbs的工作表,它是工作簿中的第二个工作表。 我努力了: With Verbs With Sheet2 With Sheets("Verbs") With Sheets("Sheet2") 他们似乎没有任何工作。