新手来了。
我正在尝试使用vba删除一个列,这花费了大量的时间。
Sub Add_Delete()
Application.ScreenUpdating = False
Workbooks("f.xlsx").Sheets("g").Columns("FD:FD").EntireColumn.Delete
End Sub
大约有20,000行,总共有230列。没有正在执行的计算。仅仅是数据
我做错了什么?提前感谢!
下面的VBA函数计算包含给定范围内公式的单元格数量。当从VBA sub调用时,它可以正常工作。从Excel调用时,它返回区域中的单元格总数。
来自Excel的调用是=CountFormulas(A1:C7),它返回21,即使该区域中只有两个带有公式的单元格。
造成这种差异的原因是什么?
Public Function CountFormulas(ByRef rng As Range) As Long
CountFormulas = rng.SpecialCells(xlCellTypeFormulas).Count
End Function
Public Sub CountFormu
我编写了一个VBA代码,它从am Excel表中获取某些行,并将它们写入TXT文件。代码很好,但我有两个问题-
我在我复制的每个两个单元格之间添加了"vbTab“字符,在TXT文件中它看起来很棒--但是当我尝试在Excel中再次打开它时,每一行都出现在一个单元格中(仅在A列中文本),没有任何空格,而且它不会像应该的那样进入列.
在TXT文件中,每行的开头和结尾都有引号("),这对我在TXT文件中的使用是不好的。
下面是代码:
For i = 1 To LastRow
For j = 1 To LastCol
If (j = 1) And
我试图将所有单元格中的所有字母转换为大写字母,这些单元格保存着B2列和下列中的数据。拿到这个VBA了。
Sub CapitalLettersColumnB()
'Capital Letters to names in column B (from B2 and down)
'Column B holds headers!
With Range("B2", Cells(Rows.Count, "B").End(xlUp))
.Value = Evaluate("INDEX(UPPER("
我在工作表的单元格范围中有一个公式,它的计算结果是数值。如何在VBA中从传递给函数的范围中获取数值?
假设工作表中A列的前10行包含rand(),我将其作为参数传递给我的函数……
public Function X(data as Range) as double
for c in data.Cells
c.Value 'This is always Empty
c.Value2 'This is always Empty
c.Formula 'This contains RAND()
nex
我已经在Excel中创建了一个遵循以下VBA代码的用户窗体:
Private Sub CommandButton1_Click()
If TextBox1.Value = "" Then
If MsgBox("Form is not complete. Continue?", vbQuestion + vbYesNo) <> vbYes Then
Exit Sub
End If
End If
ActiveCell = TextBox1.Value
ActiveCell.Offset(20, 0).Select
Call
我是vba新手,我编写了下面的代码来匹配和复制列;我正在尝试弄清楚如何使它更有效,因为它需要一些时间来产生输出。任何建议或反馈都将不胜感激!我想过将屏幕更新切换为false,但这并不能真正加快速度。会不会因为我在使用过滤单元格的自动过滤方法而变得很慢?提前谢谢你。
Sub GetItems()
Dim cel As Range
Dim celAddress As Range
Dim n As Integer
Dim SelRange As Range
Dim BrandsPasteLoc As Range
n = 1
'App
我已经阅读了几个小时的相关文章,但似乎无法找到解决方案。谢谢你的帮助。
我试图在一个范围内找到最大值,然后找出它在哪一行。这段代码适用于我的第一行600+数字,然后崩溃,并给出运行时错误91。无论我做什么,它似乎总是在同一地点坠毁。
Dim rSearchRange As Range
Dim dMaxToFind As Double
Dim rSolutionrange As Range
Set rSearchRange = Sheets("MySheet").Range(Cells(672, 1), Cells(681, 1))
With Application.Work
所以我使用Excel VBA来构建简单的宏,但现在它对我来说有点太复杂了。我想要在F列到J列中每次出现某个值时复制一行。因此,如果F列第2行的单元格值> 0,那么对于G列到J列中的单元格值,需要将整行复制到exept以下。如果G列第2行也有单元格值> 0,那么除了F,H列到J列的单元格值之外,需要再次复制整行。下图显示了我真正想要实现的目标。
经过几天对不同代码的反复试验,我看到下面的vba代码插入了空行,而没有复制它上面的行。
Sub Add_Rows()
Dim r As Long
Application.ScreenUpdating = False
我需要选择给定范围内的所有值,然后添加3行。
这是我的代码,但我似乎不知道如何让resize工作。我得到运行时错误1004。
实际上,我需要从C4向下选择所有值,然后向范围中添加3个额外的行。有两个空白单元格,然后是一个总单元格(参见下面的示例数据)。
Sub Resize_Range()
Range(Range("C4"), Range("C4").End(xlDown)).Resize(3, 0).Select
End Sub
Cell Value
C4 Animal
C5 Dog
C6 Cat
C7
我有一个Excel表,其中C列的一些单元格包含单词"Rinse“(其他单元格有不同的其他内容)。
使用VBA代码,我将选择C列中包含单词"Rinse“的所有行--这段代码工作得很好。
For i = 3 To 300
If Cells(i, 3).Value = "Rinse" Then
Rows(i).Select
Selection.FormatConditions.Delete
End If
Next
但是,我想做的正好相反,即选择C列中不包含单词"Rinse“的所有行。我试过以下几种方法,但不起作用
因此,我只需要将一系列数据的值粘贴到工作表"MasterList“中。我一直在寻找这样做的方法,并找到了这个: .PasteSpecial Paste:=xlPasteValues 我应该如何更改代码,以便可以使用.PasteSpecial Paste:=xlPasteValues函数?我想我需要两行代码来完成这项工作,但是我不能弄清楚语法…… Dim Lastrow As Integer
Lastrow = Cells(15, 3).Value + 3
Dim Copyrange As String
Startrow = 3
Let Copyrange = "I
我编写了VBA代码,它读取包含逗号分隔值的简单文本文件,并将这些值分配给数组。然后将每个数组值分配给Excel工作表上的一个单元格。相关代码行如下:
Dim arySingle(826) As Single
Dim sht As Worksheet
Set sht = ActiveWorkbook.Sheets("Input Form")
... various lines of code...
sht.Range("STLI").Value = arySingle(654)
... code continues on...
注:“输入表格”是工作簿中