我在windows7上运行excel 2010。
下面的宏会执行您预期的操作,即(1)插入一个新工作表,(2)添加一个矩形,(3)激活单元格A1。
Sub addSheetAndButton()
Dim buttonSheet As Worksheet
Set buttonSheet = ThisWorkbook.Sheets.Add
buttonSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 50).Select
buttonSheet.Range("A1").Activa
这里是VBA初学者。
我有一个为用户指定输入单元格的项目。当这些输入单元格中的一个被更改时,它需要运行几行特定于该单元格的代码。如果用户清除单元格的内容,我希望代码用值"0“替换空白单元格。
下面的代码模拟了我试图实现的目标。它是用与我的项目相同的形式写的,但更简洁。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 1 Then
Range("B1").Value = "Changed 1" 'Just
我见过许多用户问问题,试图用用户定义的函数改变单元格的颜色。我一直觉得这样做是不可能的。我的理解是,用户定义的函数除了包含公式的单元格的值之外,不能更改单元格的任何属性。子细胞本身就是改变细胞的东西。
但是,在使用一些代码来测试这一点时,我发现情况并不总是这样。
使用简单的代码:
Function ColorCell(rng As Range)
If rng.Value = 1 Then
ColorCell = False
Else
ColorCell = True
rng.Interior.ColorIndex = 3
End If
End Function
如果我将函数输
我在Excel中有一个模块,每当工作表中的任何单元格发生更改时,我都需要自动运行该模块。
现在,如果我在包含该函数的单元格上进入编辑模式,然后按enter键或Ctrl+Alt+F9键,它就会运行。我如何才能做到这一点呢?此外,我不太了解VB或Excel的宏和模块,也没有编写这些代码。
这是我的模块中的代码...
Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
Dim rCell As Range
Dim lCol As Long
Dim vResult
lCol = rColor
我将数组粘贴到列中,问题是它在列中留下一些单元格为空。我如何删除列中的那些单元格?
这就是我所拥有的:
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("Info").Range("A1").Select
Dim i As Integer
Dim iLastRow As Long
iLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
Dim
当我选择单选按钮选项时,我在自动运行宏时遇到了问题。有两个单选按钮选项,它们链接到页上代号为"MAIN“的单元格"SimType”。我已经修改了来自MSDN的以下代码,并将其包含在主工作表的模块中,但无法使其发挥作用:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("SimType")
If Not Application.Intersect(KeyCells, Range(Target.Addr
我的VBA中有一个宏,我希望我的单元格B199 (代码中的最后一行-2)返回我的单元格B200 (代码中的最后一行)和单元格B201 (代码中的最后一行)的和。不幸的是,它不能工作,因为通过运行我的宏,公式会在单元格B199:#NAME中返回一个错误。
显然,问题来自于我的代码中的以下部分:"=SUM(lastrow-1&lastrow )"
请在下面找到我的代码,如果有人能帮我,那就太好了。谢谢哈维
Sub fgdjkgfjbbg2222()
Dim lastrow As Long
lastrow = Worksheets("youpi").
我对创建Excel函数很陌生,我需要创建一个函数,该函数接受一个单元格范围,并计算单元格的值之和,而这些单元格不是删除的。
Function SUMNOTSTRIKE(rng As Range)
Dim cell As Range
For Each cell In rng
If Not (cell.Font.StrikeThrough) Then
SUMNOTSTRIKE = SUMNOTSTRIKE + cell.Value
End If
Next cell
End Function
这个函数工作正常,但我不明白
我想根据另一个宏的值为另一个宏赋值。但是,这两个宏是相连的。有没有办法避免这种情况?下面的最小示例显示了我所需要的内容:
#define VALUEA "A"
#define VALUEB "B"
// somewhere I define CHOOSE
#define CHOOSE VALUEA
// MY_MACRO shall have the value of CHOOSE, but AT THE MOMENT of this line.
// I want to reassign CHOOSE while MY_MACRO stays the s
我有一个单元格,我想记录左边相邻单元格更改的时间。我使用了NOW()函数;但是,问题是每次重新计算工作簿时都会更新时间。所以,我想知道是否有任何原始的方法来防止这个细胞自动更新。
我个人想出了这样的想法:
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
End Sub
这是:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.Calculation = xl