小编Raf*_*pov的帖子

VBA如果不是或不是

我有If Not2声明,or但代码运行仍然像它是常规If声明.Moncol是一个等于13的整数变量,if语句应该转到End If,而不是.此代码应在Moncol不等于12或13或14 时删除列.

With NewPayWS
    If Not MonCol = 12 Or Not MonCol = 13 Or Not MonCol = 14 Then
        .Range(.Cells(1, lastcol - 1), .Cells(1, MonCol + 1)).EntireColumn.Delete
        .Range(.Cells(1, DataType + 1), .Cells(1, MonCol - 4)).EntireColumn.Delete
    End If
End With
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

4
推荐指数
2
解决办法
5267
查看次数

VBA Workshhet 更改 - 仅限制特定范围的更改

我有一个触发器,我想在某些工作表中使用 - 就在 2 个特定列内。但是,当我输入另一个范围内的值时,它会触发该工作表的 Private Sub。我希望当我在 E 或 H 列中更改值时它就会开始工作。有人知道如何正确执行此操作吗?

Private Sub Worksheet_Change(ByVal Target As Range)

Dim LR As Long
Dim rng1 As Range
Dim rng2 As Range

'WE WANT TO KEEP THE TARGET COLUMNS BETWEEN 0% TO 100%
LR = Cells(Rows.Count, "A").End(xlUp).Row

Set rng1 = Intersect(Target, Range(Cells(2, "E"), Cells(LR, "E")))

On Error GoTo 1
If Target.Value < 0 Or Target.Value > 1 Then
    MsgBox "bla bla bla", vbCritical + vbMsgBoxRtlReading + vbMsgBoxRight, "error"
    Target.Value = 0
    Exit Sub …
Run Code Online (Sandbox Code Playgroud)

excel vba

4
推荐指数
1
解决办法
1198
查看次数

Excel VBA基于包含文本部分的单元格值删除行

我想删除基于单元格值的行,单元格值包含单元格内的"upg"或"upgrade".当这个词存在时,它不是单元格内的唯一单词.

这是我的代码的一部分,不删除任何东西:

Sub DeleteValues()


Dim i As Integer
Dim MFG_wb As Workbook
Dim Dep As Integer



Set MFG_wb = Workbooks.Open _
("C:\Users\rosipov\Desktop\eliran\MFG - GSS\MFG Daily\Fast Daily " & Format(Now(), "ddmmyy") & ".xlsx", _
UpdateLinks:=False, IgnoreReadOnlyRecommended:=True)
MFG_wb.Sheets("Aleris").Activate

Dep = MFG_wb.Sheets("Aleris").Range("B2").End(xlDown).Row


For i = Dep To 2 Step -1
    Cells(i, 2).Select
    If Not (Selection.Value = "& upg &" Or Selection.Value = "*& upgrade &*") Then
        Rows(i).Delete
    End If
Next i



End Sub
Run Code Online (Sandbox Code Playgroud)

这是问题所在:

For i = Dep To 2 Step -1
    Cells(i, …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

3
推荐指数
1
解决办法
1013
查看次数

DAX 公式错误 - 产生变体数据类型的表达式不能用于定义计算列

我在 Power Pivot 计算列中使用此公式在输入为十进制数字的 2 个字段上收到此错误。\xd0\x90有人知道如何调试吗?

\n
IF(HASONEVALUE (Tifuli[Seniority] ), VALUES ( Vetek_Tbl[Amount]), "gift" )\n
Run Code Online (Sandbox Code Playgroud)\n

excel dax powerbi

3
推荐指数
1
解决办法
4万
查看次数

Excel - 将索引匹配公式更改为VBA操作

我在Excel VBA中使用了索引匹配公式来查找数据库中工具的部件号和描述.这是一个指数匹配公式与condintions.首先在某个数组中查找某个机器的工具类型的匹配项,然后将其与某个数组中的配置相匹配.

我的问题是我想要更改为查找方式,因为我使用公式编写特定范围,并且我希望它是灵活的,这样如果我在数据库中添加新行,我就不需要更改代码了.数据库是表名"Illuminators".

这是我以前使用的条件的公式,你可以看到有一个单元格引用,如果我要在数组下的数据库表中添加一个新工具,它就不会在那里查找它.

 Selection.FormulaArray = "=INDEX(DB!R2C1:R21C7,MATCH(1,(DB_Illumiators!R2C1:R21C1=RC[1])*(DB_Illumiators!R2C2:R21C2=RC[2]),0),4)"
Run Code Online (Sandbox Code Playgroud)

我在循环中使用主表中的公式,并在第二张图片中的数据库工作表中使用它:

在此输入图像描述

在此输入图像描述

我将感谢那些帮助的人

拉斐尔

excel vba excel-vba excel-formula array-formulas

2
推荐指数
1
解决办法
258
查看次数

VBA Excel Outlook 电子邮件正文格式

我有自动发送电子邮件的 useform。我想更改电子邮件的正文 - 其中一些将基于带有文本的单元格,因此它可以是动态的,而有些将在代码中修复。现在 - 在运行我需要对象的错误,我会感谢帮助。我希望电子邮件正文中的每一行都是分开的。

Sub sendMail(ByVal mail As String, name As String, Msht As Worksheet, CCmail As Integer, CCperson As String)
    Dim applOL As Outlook.Application
    Dim miOL As Outlook.MailItem
    Dim recptOL As Outlook.Recipient
    mailSub = Msht.Range("J2")
    mailbody = Msht.Range("L2")
    Set applOL = New Outlook.Application
    Set miOL = applOL.CreateItem(olMailItem)
    Set recptOL = miOL.Recipients.add(mail)
    recptOL.Type = olTo
    If CCmail = 1 Then
        Set recptOL = miOL.Recipients.add(CCperson)
        recptOL.Type = olCC
    End If
    tempPath = ActiveWorkbook.Path & "\" & ActiveWorkbook.name
    With miOL …
Run Code Online (Sandbox Code Playgroud)

email excel outlook vba

2
推荐指数
1
解决办法
2万
查看次数

VBA Excel结束如果没有阻止如果错误

我的代码中有一些语句有一个简单的问题.情况是这样的:我根据选择的月份在Excel中使用UserForm,数据从另一个报告转到我的报告.为了分析某个月的数据,我们需要前一个月的数据.因此,对于1月份,我们需要12月份的去年数据库中的数据.我做了特殊的sub,以防我们需要分析1月的数据,我们也需要旧的数据库.有了这个声明我有一个问题,我得到错误"VBA结束如果没有阻止如果错误":

'If the month that was selected is January then we need to open old Visual file Month
If MonthName = Lists.Range("A2").Value Then 'it means January
    Call January
Else
    For Each ws In Worksheets
        If ws.Name = "December" Then
            Sheets("December").Delete
            End
        End If
    Next ws
End If
Run Code Online (Sandbox Code Playgroud)

拜托,有人可以帮忙吗?

excel vba excel-vba

1
推荐指数
1
解决办法
2076
查看次数

由于许多IF,Excel VBA错误"下一个没有"

我有以下代码,当我肯定有两个时,VBA给我一个"Next Without For"错误.我在网上查了一下,明白这是因为很多ifs,有人能告诉我我的问题在哪里吗?

我有3个workbboks,我想根据第一列中的nimber将每一行剪切并复制到正确的工作簿中.

     Dim i As Integer
    Dim RowTable As Integer

RowTable = Sheets(3).Range("A1", (Range("A1").End(xlDown))).Rows.count


'loop


For i = 2 To RowTable

'SORTING DATA TO WORKBOOKS



'Oren, Karin, Noam

'Oren
If Selection.Value = 1 Then

Selection.EntireRow.Cut
WB1.Activate
WB1.Sheets(1).Range("A1").Offset(1, 0).Select

        If Selection.Value = "" Then
        Selection.PasteSpecial (xlPasteValues)
    Else
        Range("A1").End(xlDown).Offset(1, 0).PasteSpecial (xlPasteValues)
        End If


    Else

'Karin
If Selection.Value = 2 Then

Selection.EntireRow.Cut
WB1.Activate
WB1.Sheets(1).Range("A1").Offset(1, 0).Select

        If Selection.Value = "" Then
        Selection.PasteSpecial (xlPasteValues)
    Else
        Range("A1").End(xlDown).Offset(1, 0).PasteSpecial (xlPasteValues)
        End If


    Else

'Noam
If …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

0
推荐指数
1
解决办法
102
查看次数

如果单元格不包含值,则删除行

我想传递列O中某个范围内的所有单元格,并删除所有不包含值的行:OI和SI.

我的代码显示错误:

If Selection.Value <> "SI" Or "OI" Then
Run Code Online (Sandbox Code Playgroud)

作为一种类型不匹配

Sub CHECK()
Dim MFG_wb As Workbook
Dim Dep As Integer
Dim I As Integer

Set MFG_wb = Workbooks.Open _
("C:\Users\rosipov\Desktop\eliran\MFG - GSS\MFG Daily\Fast Daily " & Format(Now(), "ddmmyy") & ".xlsx", _
UpdateLinks:=False, IgnoreReadOnlyRecommended:=True)
MFG_wb.Sheets("Aleris").Activate

Dep = MFG_wb.Sheets("Aleris").Range("O2", Range("O2").End(xlDown)).Count

Range("O2").Select

For I = 1 To Dep

    If Selection.Value <> "SI" Or "OI" Then
        EntireRow.Delete
    Else
        Selection.Offset(1, 0).Select
    End If

Next I

End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

0
推荐指数
1
解决办法
924
查看次数

标签 统计

excel ×9

vba ×8

excel-vba ×6

array-formulas ×1

dax ×1

email ×1

excel-formula ×1

outlook ×1

powerbi ×1