我正在尝试创建一个宏,该宏复制具有设置文本的模板的单元格范围,并将该模板粘贴到一个工作簿中另一个工作表上的其他单元格中。
我现在拥有的是:
Option Explicit
Dim ClinObTemplate As Variant
ClinObTemplate = Sheets("clin obs").Range("A397, [D429]")
Dim NewTemplate As Variant
NewTemplate = Sheets("clin obs 2").Range("A430, [D462]")
Sub Cli
我在工作簿中有一个数据连接,我使用VBA刷新它。
sub RefreshData()
ActiveWorkbook.Connections("LoadData1").Refresh
End Sub
代码运行时没有错误,但数据不会更改或更新。但是,当我逐步完成代码时,它工作得很好,数据也会被更新。我还试着做一个wait。
sub RefreshData()
ActiveWorkbook.Connections("LoadData1").Refresh
Application.Wait (Now + TimeValue(&
我试图使用Access VBA遍历Excel文件中的所有工作表。
子例程需要选择第一行并在每个工作表中设置RowHeight。
我使用一个字符串变量来调用子例程,并将工作表名称传递给它。它第一次起作用,但下一次我
“选择范围类别失败的方法”
我尝试移动变量声明,更改打开Excel的位置(如果我将它放在子例程中,它会打开两次),并将其作为函数而不是子例程进行操作。
‘我的对象和工作表变量在对象的顶部声明:
Dim objExcel As Object
Dim wks As Worksheet
Dim wkb As Workbook
‘我正在打开Excel并在子例程中设置工作簿对象:
Se
我使用VBA来捕获单元格中的日期输入。我遇到的问题是,如果单元格为空,则VBA将其读取为12:00 AM,因此我在VBA中的ISDATE()函数将其视为日期,但代码会出现故障,因为它不是实际日期。哪些VBA语法可以自动检查以验证单元格包含日期?
这是我当前的语法
Sub IsDate()
Dim d1 As Date
d1 = CDate(Range("A1").Value)
If IsEmpty(Range("A1")) = False Then
If IsDate(d1) = True Then
'Continue
End
我有一个问题,使用一个过滤范围在VBA。如果使用宏筛选范围,然后使用另一个宏调用Subtotal工作表函数在第一列中查找最小值,则得到筛选范围的预期最小值;这是我想要的。如下所示:
Sub TestFilterTrans()
Call FilterTrans("111Wall")
End Sub
Sub TestMinDate()
MsgBox MinTransDate()
End Sub
Sub FilterTrans(Inv As String)
Range("TransLabels").Select
Selection.
你好,堆栈溢出社区!我是VBA脚本编写的主要Noob,我认为我有一个简单的问题吗?我的工作表上有一些简单的代码,每次在特定单元格中更改值时都调用一个函数。
问题是,单元格是下拉菜单,当您将下拉菜单的选择更改为相同的值时,它仍然运行代码。
为了清楚起见,我希望在下拉列表发生变化时运行代码。只是当它“改变”到相同的值时就不行了。在下面粘贴我的代码。如果你能帮忙请告诉我!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$W$21" Then
Call Fina
我想在Excel电子表格上有一个按钮,并将数据复制到Access表中。该区域是来自同一工作簿中另一个工作表的自动填充的字段。 我尝试了几个代码来实现这一点,但我要么得到一个错误1004:应用程序定义或对象定义的错误,要么没有错误但数据没有被复制到Access DB中。 下面复制了我的代码。 Sub Export_Data()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim dbPath
Dim x As Long, i As Long
dbPath = "H:\RFD\
我在excel vba中写了一个函数。函数的返回值是date,但函数只返回单元格中的date的值
如何将单元格的格式更改为日期(短日期优先)
这是我的代码
Function ggg(rng As Range) As Date
ggg = rng.value - 466699
ggg = CDate(ggg)
End Function
我写了这个VBA。本质上,它所做的是;我在工作表中的几个单元格上使用了'Define‘("Test")。VBA确保无论何时打开工作簿,它都会自动放大以适应该范围。现在,我认为它只在打开工作簿时触发,如果打开工作簿时没有选择该工作表,它会提供错误消息。现在,我希望它只在选择特定工作表时才能运行。我真的是从别人那里抄来的,所以我不知道该怎么修改.
提前感谢!
Private Sub Workbook_Open()
Range("Test").Select
ActiveWindow.Zoom = True
Cells(1, 1).Select
End Sub
使用Access 2010,我为跨越5个不同表单的表创建了条目单元格,并在每个窗体上创建了命令按钮以在它们之间导航,过滤当前窗体上ID的下一个表单。五个命令按钮中的四个可以很好地过滤到适当的表单,但是与一个表单相关联的命令按钮--一个错误消息读取:
保留错误(-3087);没有此错误的消息。
我使用了宏和VBA在表单之间导航,使用了Where条件下带有过滤器的OpenForm或DoCmd.OpenForm。宏看起来是这样的:
Open Form
Form Name "MyForm"
View Form
Filter name
Wh
我对VBA知之甚少,还在努力学习它。我做了一个VBA脚本,如下所示:
Function doIt()
Dim c As int...
.............
.............
.............
c = callFunction
...............
..............
End Function
Function callFunction(byVal num As Int)
..........
..........
..........
End Function
正如您所看到的,callFunction是一个从主函数doIt调用的函数。假设call
我可以不在多个工作簿中使用相同的已定义名称,而是可以在xlam文件中定义一个常量,然后可以在所有工作簿中使用该常量吗?
例如,在VBA中:
Public Const nKilobyte = 1024
然后在工作表中:
=A1 / nKilobyte
我尝试了一下,但得到了一个#NAME?错误。现在,看起来工作表可以引用在VBA中定义的函数,但不能引用常量。因此,作为一种变通方法,我编写了以下函数:
Public Function vConstant(sName As String) As Variant
Select Case sName
Case "kb
我99%确定答案是“不”,但我想知道是否有人谁是百分之百肯定可以这样说。
考虑一个VBA UDF:
Public Function f(x)
End Function
当您从工作表中调用它时,“x”将是一个数字、字符串、布尔值、错误、数组或类型为“Range”的对象。比如说,它可以是'Chart‘、'ListObject’或任何其他Excel-VBA对象模型类的实例吗?
(这个问题源于我迁移到Excel2007并使用表格,并且想知道我是否可以编写接受它们作为参数而不是Range的UDF。这个问题的答案似乎是否定的,但后来我意识到我并不确定。)
只是想看看是否可以在表的第二列上使用VLookup?我无穷无尽地寻找,也找不到答案,但我觉得这应该是可能的。
在这一点上,我要补充说,VBA不是我的强项。我来自PHP/MySQL背景,但没有在工作中使用这两者的奢侈,所以我求助于学习VBA。
到目前为止我的代码(简化):
Dim userEnviron As String
Dim rowId As Integer
rowId = 0
userEnviron = Environ("Username")
Dim tbladmin As ListObject
Set tbladmin = Sheets("Office De
我需要使用VBA从Access form+button调用和执行Excel电子表格中的VBA。
我有几个Excel电子表格连接到Access DB。我用VBA (C:\CDR &\RebuildDB)创建了一个单独的DB,以刷新和重建我的源数据库和报告工作簿。我还创建了一个单独的工作簿来刷新所有其他报告(C:\CDR & Project \RefreshReports)。.xlsm的模块15将调用我的所有其他模块来刷新这些报告。
在执行代码的Excel部分之前,我的所有代码都是与重建DB有关的代码。当前,Excel部分如下所示:
Dim oXLApp As Object
Set