恐怕我误解了excel的VBA文档,我有这一行似乎是一个错误:
Range a = Selection.SpecialCells(xlCellTypeConstants, 23)
但这个很好:
Set a = Selection.SpecialCells(xlCellTypeConstants, 23)
这些文件要求:
返回一个Range 对象,它表示与指定类型和值匹配的所有单元格。
但是它实际上返回一个byRef对象,这就是我必须使用Set的原因。
我在这里错过了什么?
下面是Excel中的Range.SpecialCells方法帮助:
我一直在使用Excel代码,如下所示。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A2000")) Is Nothing Then
Call writetag
End If
End Sub
Sub writetag()
ActiveCell.Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Formula = "1st Request"
End Su
我是VBA的新手,在编写一个脚本时遇到了麻烦,该脚本首先合并一组行(保留每行的所有内容),然后移动到定义的单元格范围中的下一列。这段excel vba代码实际上捕获了我要做的事情(),但我试图将它扩展到一个包含多个列的范围(特别是介于rng范围(“a25:ac29”)之间的范围)。
我的当前代码被复制到下面,但在val部分中总是出现Type错误。
提前感谢!
#试用版VBA代码##
**Sub vba_merge_with_values()
Dim val As String
Dim rng As Range
Dim Cell As Range
Dim ws As Worksheet
Set
使用VBA向数千个单元格(500000个单元)添加后缀(在本例中仅为"ID")的有效方法是什么?
VBA中的简单和通常的'for循环‘花费的时间太长了。(例如,For Each Cell In Selection.Cells等细胞的数量需要数十分钟)。
我写了以下(基于互联网搜索),工作在Excel 365,但不是在Excel 2016。相反,在2016年,它采用左上角的单元格,并将其粘贴到所有选定的单元格中。关于如何纠正这个问题,有什么想法吗?非常感谢。
Sub AddTextToEndOfCellValue()
Dim Suffix As String
Suffix
我在Excel中有数据。我想要复制标题和一些数据从中间的工作表到Powerpoint。我知道你不能在Excel中复制一些不相邻的单元格,但我的印象是它会与VBA一起工作。
我的尝试:
With Workbooks(1).Sheets(1)
Set rng = Union(.Range("B2:K3"), .Range("B45:K85"))
End With
我可以选择"rng",但是我不能将它粘贴到任何地方,因为我得到了不能粘贴不相邻单元格的错误消息。
我也尝试过这样做,但是它导致了整个表(B2:K85)被复制:
With ThisWo
运行此脚本时,VBA监视窗口显示“类型不匹配”,strBody变量和值的值为空。我已经确认了这个脚本的电子邮件部分是有效的。我只是不能选择我想要的单元格范围。帮助? 我希望能够为strBody变量选择一个范围。 如果我将strBody变量替换为以下内容,则一切正常: strBody = Str(Sheet1.Cells(1, 1)) & Str(Sheet1.Cells(1, 2)) Sub send_email()
Dim NewMail As Object
Dim MailConfig As Object
Dim SMTP_Config As Variant
Dim strSub
我想要两个VBA代码,第一个代码将列(A,C,D,E和F)中选定的单元格行移动到顶部,另一个代码将行单元格移动到excel表格的底部。
例如,如果我选择C3中的单元格并运行宏,一行中的单元格(A3、C3、D3、E3和F3)将移动到表格的底部。
我有以下代码,它将整个行移到底部:
Public Sub MoveToBottom()
If Selection.Row <> 1 Then
'move the whole row
Selection.EntireRow.Cut
Range("B1").End