以前从未使用过VBA,基本上只是尝试编写这个sub:
Sub Populate_Empties()
Dim i As Integer
Dim j As Integer
Dim n As Integer
Dim m As Integer
Dim k As Integer
' test for 50 rows...then change i from 2 to 278970
m = 2
For k = 3 To 8
For i = 2 To 50
If (IsEmpty(Cells(i, k).Value)) Then
我很难将内置的Excel函数传递给一个单元格。它一直在返回"Run-time error '1004': Application-defined or object-defined error".
基本上,我要做的是使用VBA创建一个平均/平均的动态演算。
With Sheets("TC7_DATA")
LastColumn = .Cells(4, Columns.Count).End(xlToLeft).Column
For i = 1 To Rows.Count
If (.Cells(i, 3).Value =
我想在VBA中创建一个程序,它将根据类型改变单元格的颜色。如果值为负值,则字体将为粗体。我的代码:
Sub Tables()
Dim N As Integer
Dim M As Integer
Dim i As Integer
Dim j As Integer
M = InputBox("Number of columns")
N = InputBox("Number of rows")
For i = 0 To N
For j = 0 To M
If IsEmpty
这是我写的代码。我不明白为什么我会出错:如果没有阻塞,如果
Sub mytest()
Dim i As Integer
Dim s As Integer
Dim j As Integer
Dim p As Integer
Dim k As Integer
s = 0
With Worksheets("mysheet")
.Range("B28:B75").Select
For i = 28 To 75
If Cells(i, 2).Value > 0 Then Cells(i, 2).Interior.Color = RGB(255,
这是我的代码,它应该做标题所说的事情(在第3行),但它不起作用。有人知道它为什么不工作吗?列中的数字格式化为文本。谢谢
Dim i As Long
For i = 3 To lastRow
If Not (wsFinal.Cells(i, "Q").Value <= 2015 Or wsFinal.Cells(i, "Q").Value >= 1910) Then
With wsFinal
.Cells(i, "Q").ClearContents
当我去运行VBA代码时,它会给出一个“编译错误:类型不匹配”的错误。它不会像以前那样给出错误代码。
它正被用于处理这些数据。左边的数据是一个表,我运行的是在Row J中的值,并在Row M中分配ID
Excel图像
Sub Cat()
Dim i As String
Dim x As String
For i = 1 To 113
For x = 1 To 13
If Sheet1.Cells("B", i).Value = Sheet1.Cells("J", x) Then
我试着用vba来给这门课打分,这里是我的代码和信息。
3条件,如果成绩在100或以上,它将显示100+,如果它是50或以上,它将显示50+。否则,它将显示低于50。我试图在sheet2中创建一个按钮,所以当我按下它时,代码将在sheet1中运行。范围每个月都会有所不同,这就是为什么我试图循环到A列中的最后一行的原因,我还向您展示了我试图生成的结果的快照。我的问题是,当我运行代码时,如果没有if,它就会出现错误。需要建议或建议。
Sub Macro1()
Dim I As Integer
Dim lr As Integer
Set ws = Worksheets("Sheet1"
我有VBA代码,用当前日期检查输入的日期,并以适当的颜色填充单元格,并检查colomn "F"是否为空,它将为D、E、F列着色。
问题是,到目前为止,我有21条记录,但系统只显示19条记录,即使2行在F列中不是空的。
代码:
Private Sub CommandButton1_Click()
Dim i As Long
For i = Range("C5000").End(xlUp).Row To 2 Step -1 'Range upto 5000, chnge this as per your requirment'
If I
我有一个vba代码来连接来自不同列的值。其中一列;M-列是日期,格式为dd/mm/yyyy。我想将日期的整数值与单元格中的其他值连接起来。
我试图使用Int(CDbl("date"))将日期值转换为int,然后使用它连接其他单元格。
我当前的vba代码是:
Dim datevar As Integer
For i = 1 to LastRow
datevar = Int(CDbl(Sheets("Project_Name").Cells(i, 13).value))
target.location.formula = "=Project_
这是我第一次做VBA宏,我很难理解这个问题。
我试图过滤和颜色单元格的特定值,但当我尝试运行代码时,它说‘类型错配’。
Dim count, i As Long
Dim ws As Worksheet
Dim count, i As Long
Dim ws As Worksheet
Set ws = Sheets("Sheet1")
count = ws.Cells(Rows.count, "E").End(xlUp).Row
i = 2
Do While i <= count
If Cells(i, 5).Value = "#N/A
我正在尝试搜索由另一个模块生成的表,并删除不包含字符串"REPAIR_RTS"的行。我已经尝试了这个站点的几种方法,但每次我将搜索值更改为"REPAIR_RTS" (表示CASE...的行)时,都会得到类型不匹配。
下面是我的最新尝试。
Public Sub Test()
lastRow = Range("D65000").End(xlUp).row
For i = lastRow To 2 Step -1
Select Case Cells(i, 4).Value
Case "REPAIR_RTS"
如果多个单元格中的值等于0,我希望隐藏行。我尝试过这个VBA代码,它“工作”,但在最后,与0的行没有被隐藏。
Sub Rehien_ausblenden()
Dim i As Integer
Application.ScreenUpdating = False
Worksheets("Daten").Activate
For i = 12 To 45
If Cells(i, 7).Value = 0 And Cells(i, 8).Value = 0 _
And Cells(i, 9).Value = 0 And
我使用以下VBA代码在工作表的B列中查找特定文本,如果找到,则删除整行。然而,当我运行它时,我总是得到一个Type Mismatch Error。我已经尝试修改所指示的代码行(**)中的每个值,因为这就是抛出错误的原因,但没有成功。帮助?
Last = Cells(Rows.Count, "B").End(xlUp).Row
For i = 1000 To 2 Step -1
If (Cells(i, "B").Value) = "#N/A" Then ' line that errors out
Cells(i,
我有一个Excel的工作表,不同的足球队和他们的球队,以及个人球员的信息。我想要做的是,从我的表格中连接某些单元,并将这些数据放到一个更简单的表格上,让其他用户看到,例如,显示哪些球员目前在所有球队中受伤。我会解释:
F_Team | Player | Injured
Liverpool Coutinho 0
Liverpool Benteke 1
Liverpool Sturridge 1
Man U Rooney 1
Chelsea Sterling 0
所以在我的另一张桌子上,它看
我一直在尝试解决这个问题,但没能解决。我有以下VBA代码。在运行时,它会给出“运行时错误6:溢出”。我想我已经为每个变量分配了正确的类型。请帮帮我!!
Sub UseCoeff()
Dim a, b As Long
Dim Value1 As Double
ThisWorkbook.Sheets("UseTableBEA").Activate
For b = 2 To 427
For a = 2 To 431
Value1 = ThisWorkbook.Sheets("UseTableBEA").Cells(a, b).Value /
我有一个excel格式的报告,它在一个到多个与其他字段的关系中有大小写字段。对于示例:如果一个案例是由多个团队处理的,那么每个团队都有单独的条目。
我试图通过比较大小写将行值连接起来来删除重复的值。
Case# Team Type Name Country
111 aa xx国家
111个bb y名称国家
我想要的输出是:
Case # Type Team Country>E 211</code>
111 aa,bb xx,yy Name country
我有下面的VBA代码:
Sub mergeCaseNumberValues()
Dim lngRow As Long
Wi
我的VBA代码有问题。我试着比较两列,A列和B列。如果某些数据匹配,例如,假设A2包含B3中的文本,那么我需要将单元格C2与列D进行比较。我不明白为什么,但是我得到了错误“如果没有块,如果没有阻塞,如果”。非常感谢你们的帮助。
这是我的代码:
Sub Compare()
For i = 1 To 100
For j = 1 To 50
If InStr(1, ActiveSheet.Cells(i, 1).Value, ActiveSheet.Cells(j, 2).Value, vbTextCompare) <> 0 _
Then For k = 1 T
我有vba脚本,应用vlookup从一个excel文件另一个文件。它的工作很好,但输出excel文件只包含输出数据,但我需要公式的vlookup输出,因为我需要应用同样的东西下一步使用复制粘贴,所以我需要一个帮助,以获得公式也在输出excel。这是我的vba脚本
Sub vloo()
Dim rng As Range
Dim user As String
Dim file As String
Dim n As Integer
Dim m As Integer
Dim c As Integer
Dim a As Variant
n = 1
m = 0
我的代码有问题,出现了一个错误,我不明白为什么。错误是:
“编译错误:没有For的下一步”
我不明白为甚麽会这样。我是编程新手,所以任何帮助和评论都是非常受欢迎的。
这是代码,下一个没有For的代码提供了一个注释。
Sub CGT_Cost()
startrow = Worksheets("GUTS").Cells(10, 1) 'Here I put 1
endrow = Worksheets("GUTS").Cells(11, 1) 'Here I put 1000
For x = endrow To startrow Step -1
我想为值选择一个范围(值,整个列):FirstDate、EndDate和Number。我的VBA:
突出显示了以下VBA的产出(D栏):
Sub DateTest()
Dim FirstDate As Date ' Declare variables.
Dim IntervalType As String
Dim Number As Integer
Dim EndDate As Date
Dim TempDate As Date
Dim i As Integer
IntervalType = "m"
我在VBA代码中遇到了一个条件问题。
If Cells(i, 10).Value = Blank And Cells(i, 26).Value <= 61 _
And Cells(i, 1).Value <> "*30G*" Then
我想忽略在他的单元格值(列A)中包含以下字符串的行。基本上,单元(i,1).Value是ID号。目标是只为不包含或以"30G“开头的#ID发送电子邮件。否则,代码运行得很好,我就会受到这个新约束的影响。
我在运行VBA访问时出错。当我运行这段代码时
Option Compare Database
Function Ashray()
Dim last As String
Dim i As Integer
Dim column As Integer
Dim temp As String
column = 2
i = 1
While i > 0
temp = ws.Cells(i, column).Value
last = Right(temp, 4)
ws.Cells(i, 1).offset(, column).Value = last
i = i + 1
If ws.Cells(
我有一个For循环&对于VBA中的每个循环,其中我使用偏移量在循环中的每个单元格的内容中搜索一个字符串:
为每一项使用:
Lastrow = ActiveSheet.Range("A2").End(xlDown).Row
Set Myrange = ActiveSheet.Range("M2:M" & Lastrow)
countrows = Cells(Cells.Rows.Count, "A").End(xlUp).Row
For Each Cell In Myrange
If strPattern <&g
我被这个代码片段困住了,我已经看了一遍又一遍,但我似乎找不到问题。有人知道为什么会出错吗?错误的帖子如下所示。
For i = 2 To Total_rows_Pick
For j = 2 To Total_rows_Dash
If Application.WorksheetFunction.IfError(Application.WorksheetFunction.Index(Worksheets("Finished").Range("B2:B1048576"), Application.WorksheetFunction.Match(
我在VBA宏excel中写了下面的代码,我的问题是我得到了(107,col10)行中的范围错误的对象,我不知道为什么。我得到的这一行错误
.Range(.Cells(x, "A"), .Cells(x, "AC")).Select
我的代码如下
Sub MRP()
'
' Macro1 Macro
'
'
Dim wks As Worksheet
Dim OPwks As Worksheet
Dim MRPwks As Worksheet
Dim OPDwks As W
我得到了运行时错误'1004':应用程序定义的或对象定义的错误对下面的代码(在这里,我定义lr),不能在我的生活中解决问题。
代码的目的是在定义为"ProjectDescriptionColumn“的列中搜索匹配的项目描述,并返回驻留在同一行单元格中但在定义为"ProjectCodeColumn”的列中的项目代码
任何帮助都非常感谢。
Dim ProjectDescriptionColumn As Long
Dim ProjectCodeColumn As Long
With Sheets("Completed")
If Cells(LastR
我的代码写在下面。当我运行它时,我得到一个
1004应用程序定义或对象定义错误
在这一行:
Set MLNRange = Sheets("GJR GARCH").Range(Cells(2, j).Value, Cells(1063, j + 4).Value)
我是VBA的新手,我不明白到底出了什么问题。
Sub MLNRealworldtransfer()
Dim MLNRange As Range
Dim MLNDensity As Double
For i = 10 To 23
For j = 1 To 116
Set MLNRange = Sheets(
我刚开始教自己VBA,所以提前谢谢。为什么这会让我出错?代码搜索将来的日期列。然后在该列中搜索任何具有值的单元格,并将其颜色为黄色。
谢谢!
Sub Macro1()
Dim cell As Range
Dim cell2 As Range
Dim ColumnN As Long
For Each cell In Range("I2:ZZ2")
If cell.Value > Now() Then
'
ColumnN = cell.Column
ColumnL = ConvertTo
我试图创建一个VBA代码,将公式粘贴到列和单元格的可变范围。我有一个代码的开始,我认为我可以修改,但我一直没有成功。
我有一个工作表(见图),它在A2 &??之间有一个可变范围。我需要将一个公式粘贴到C3区域的行和列的末尾,这个公式将取B中的值并除以列数。我以为我有个开始,但我失败了。
请协助。“开始”代码如下
Sub QtyByWks()
Dim M As Long, N As Long, i As Long, x As Long, j As Long
M = Sheet10.Cells(1, Columns.count).End(xlToLeft).Column
我在宏中是全新的,所以我想知道我的代码在哪里出错了。
我只想要一个简单的IF -并且基于两个不同的列,结果应该在第三列中。
我的代码是:
Sub FTL_Customer3()
Lastrow = Sheets("Raw data").Range("D" & Rows.Count).End(xlUp).Row
For i = 1 To Lastrow
If Sheets("Raw data").Cells(i, 5) = "Postponed to next month" And Sheets
我收到了一个运行时错误,但这可能是我遇到的最小问题。逻辑在我的头脑中是有意义的,但我可能没有使用正确的语法或函数。我的代码如下,带有注释和“希望”:
Sub Random_Points()
Dim i As Integer
Dim j As Integer
Dim Max As Integer
Dim RandomNumber As Integer
Max = 100 '(Max is being multiplied by the Rnd function to provide a random number between 0-100)
我正在尝试用sheet2匹配sheet1上的名字,但下面的代码不起作用。如果sheet1上的名称至少包含sheet2上的名称的一部分,我想要做的就是匹配(通过将其涂成蓝色)。比方说;
sheet1:约翰·利文通
sheet2 : John Living
Sub inst()
Dim nameone As Variant
Dim cel As Variant
Dim nametwo As Variant
Dim cem As Variant
nameone = Sheets("Sheet1").Range("L1:L1600
好吧,我是Excel VBA的新手。我正在尝试做一些对我来说很简单的事情,有很多很多的例子,我已经详尽地读过了,但我似乎无法通过这个so...here do。
我正在尝试在Excel Microsoft Office Professional Plus 2010中将一系列单元格从一个工作表粘贴到另一个工作表。我想我已经把这个问题简化为最简单的形式来说明这个问题。这只是一个片段。VictimResults和TempWorksheet变量设置得更高。我没有包括代码,因为我认为它可能会混淆问题的表达。
Dim SourceWorksheet As Worksheet
Dim TargetWorksh
我已经写了几个潜艇,然后从一个主潜艇中调用。单个子类运行得非常快,大多数都是瞬时运行的(由于表中的数据量很大,DoFind子运行需要几秒钟的时间),但是当我运行主子时,它需要一分钟的时间来执行。对于为什么会出现这种情况,有什么建议吗?
注意,我在VBA方面的经验不多(所有这些都是在过去的一周里学到的)。还有其他宏使用,但它们没有显示,因为即使是测试子大约需要1分钟。
Sub DoFind()
Dim i As Long
i = 1
Do While Sheets("Temp").Cells(i, "A").Value <
关于这个线程中的代码,我有一个问题。
在线程中,这是代码吗?
Sub ClearOldData()
Application.ScreenUpdating = False
Dimi As Long
With Sheets("Data")
For i = 2 To LastRow Step -1
If Int(Date - Cells(i, "F").Value) > 179 Then
.Rows(i).Delete
End I
我试图用VBA编辑我的excel表,但是编译时会出现一个错误。它不认识第2行和第10行。
Sub IfThenElse()
Dim i As Integer = 23
While Not IsNull(Cells(i, 35).Value)
If Cells(i, 35).Value > 1E+16 Then
Cells(i, 4).Value = Cells(i, 35).Value / 10
Else
Cells(i, 4).Value = Cells(i, 35).Value
我正在使用下面的VBA代码在一个文件夹中列出我所有的excel文件。
由于某些原因,这只在50%的情况下正确。
假设我在一个文件夹中有12个excel文件,有时只列出一个文件,而其他时候则列出所有文件。
有人能告诉我我哪里出错了吗?
Sub List()
On Error GoTo Message
ActiveSheet.DisplayPageBreaks = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim objFSO As Object
Dim objFolder As Obje
第一次海报。
以下VBA脚本每次都会中断一个工作宏。我尝试过不同的语法来修复,但是得到了相同的结果。
代码应该检查L列中的所有数据单元格,查找字符串"ERROR“。如果找到,将该单元格和右边的单元格复制到正确的列"AX“,并清除L和M中的文本。
它每次中断的步骤是“单元格(I,50).Paste”线。
Set rng = Application.Range("L4:M" & lrow)
For i = rng.Rows.Count To 4 Step -1
If Cells(i, 12).Value = "ERROR" Then
我是VBA编程的新手,就像大多数在这里问问题的人一样。:)我写了一段代码,它运行时没有任何错误,但由于某种原因,如果第二部分在组中运行,它就不会执行。令人惊讶的是,如果我单独运行代码的第二部分,它会完成自己的工作。有人能给我一点指导吗?是什么导致了这个问题?
Sub Macro1()
Endrow1 = Cells(Rows.Count, 1).End(xlUp).Row
Dim j As Integer
Dim k As Integer
For i = 3 To Endrow1
With Sheets("Sheet1").Cells(i, 1)
我想为执行以下操作的命令按钮创建VBA代码: 1.循环遍历除主工作表(出售)之外的所有工作表。2.如果满足条件(已支付)复制行。3.将行粘贴到主工作表(出售)
到目前为止,我有代码,但我的问题是,它循环遍历所有工作表,包括主工作表(即重复主工作表中的信息),如果我试图编写“如果ws.name<>”“出售”,那么代码将停止工作,从而产生消息框错误。请帮我修改代码。
Private Sub CommandButton1_Click()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Dim i, LastR