我有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) 我有一个触发器,我想在某些工作表中使用 - 就在 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) 我想删除基于单元格值的行,单元格值包含单元格内的"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) 我在 Power Pivot 计算列中使用此公式在输入为十进制数字的 2 个字段上收到此错误。\xd0\x90有人知道如何调试吗?
\nIF(HASONEVALUE (Tifuli[Seniority] ), VALUES ( Vetek_Tbl[Amount]), "gift" )\nRun Code Online (Sandbox Code Playgroud)\n 我在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)
我在循环中使用主表中的公式,并在第二张图片中的数据库工作表中使用它:
我将感谢那些帮助的人
拉斐尔
我有自动发送电子邮件的 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) 我的代码中有一些语句有一个简单的问题.情况是这样的:我根据选择的月份在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)
拜托,有人可以帮忙吗?
我有以下代码,当我肯定有两个时,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) 我想传递列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)