Private Sub ShowHideWST_Click()
Dim MyC As String
MyC = "G:I" And "T:W"
If ShowHideWST.Value Then
Application.ActiveSheet.Columns(MyC).Hidden = True
Else
Application.ActiveSheet.Columns(MyC).Hidden = False
End If
End Sub
我想在excel VBA中选择多个列。MyC = "G:I“和"T:W"显然存在错误。请指导我如何选择
嗨,我有下面的VBA代码,它一次又一次地失败。
Sub theathersplitmacro()
Dim SDrv As String
Dim DDrv As String
Dim Sfname As String
Dim Dfname As String
Dim wkbSrc As Workbook
Dim wkbDst As Workbook
Dim shtname(1 To 16) As Variant
Dim i As Integer
Dim Lastrow As Variant
Dim destination_file As String
'Dim regions
这个代码有什么问题?我得到一个"ARG!“错误
Public Function nr_kolor(kom As Range)
For Each komorka In kom
wartosc = komorka.Font.Color
wiersz = komorka.Row
kolumna = komorka.Column + 3
nr_kolor = wartosc
Next komorka
activesheet.Cells(wiersz, kolumna).Select
Selection.Interior.Color = war
对于一个VBA新手来说似乎是个愚蠢的问题,但我不知道如何写到VBA中的一个单元格.我在"Module1“中有一个函数,如下所示:
Function Foo(bar As Boolean)
Range("A1").Value = 1
Foo = ...
End Function
然后假设我把细胞A2的公式设为:
=Foo(true)
如果我拿出范围设定线的话,电话本身就能工作.在这种情况下,将调用单元格设置为foo值。但我希望这最终能立刻写出大量的细胞,而不是对每个细胞都有不同的函数调用。我做错什么了?
如果这段代码能按原样工作..。Excel 2007中是否存
我是VBA新手,所以请原谅我的无知:)
我在编写(和理解)为什么我的代码不能在VBA中工作时遇到了问题。我正在尝试引用多个单元格。我的代码是
If sheet4.range("G2:G26").value = "" Then
Sheet4.range("G2:G26").value = "No Gas"
Exit Sub
End If
End Sub
我知道我不能使用多个单元格作为值,但是我该如何编写代码呢?另外,为什么我不能使用多个单元格作为值?
我有一系列Excel工作簿,它们的某些数据依赖于单独的工作簿。因此,当主工作簿打开时,我需要数据工作簿自动打开。为了让非技术终端用户保持简单,我将数据工作簿隐藏起来。但是,我需要能够同时处理两个工作簿。因此,我尝试设置一个标志(links_opened)来指定主工作簿打开时数据工作簿是否已经打开。说句公道话,这是我第一次和VBA打交道,我觉得很奇怪。
下面是我代码的相关部分:
Option Explicit
Dim w As Workbooks
Dim links_opened As Boolean
links_opened = False ' This is where VBA r
所以我觉得我对VBA编程有了很好的理解(比方说是中级的),但这让我很困惑……
上下文:为我继承的MS访问应用程序编写的一些VBA程序。这个应用程序是FE/BE分离的,是一个存储在网络服务器上的数据库文件。
我最初的问题是在未能打开记录集时出现了一个丑陋的异常,在谷歌先生的帮助下,我选择使用GetAttr()方法来测试对BE目录的访问。
On Error goto ErrConnect
a = GetAttr("\\server-name\directory\")
If (a <> Null) Then
MsgBox "is connec
我是VBA新手,我一直在使用下面的代码将nams数组中的列重新排序为指定的顺序。
我想要做的不是将列的列表写入代码,而是从另一个工作表的范围中获取列表,以使代码更灵活,但我不确定从哪里开始。任何帮助都将不胜感激!
Dim rng As Range
Dim i As Integer
Dim J As Integer
Dim Temp
Dim nams As Variant
Dim F
Dim Dex As Integer
nams = Array("RequestCode", "Contact", "OpenDate", "ClosedDa
我在找这个,但我找不到!是否可以将和VBA数组移动/复制到 Range 变量,我不是说范围单元格,而是您声明的范围(例如: DIM ran作为范围)
我想要这样的东西:
Public Function test()
Dim ran As Range
Dim myArray(4) As Integer
myArray(1) = 1
myArray(2) = 2
myArray(3) = 3
myArray(4) = 4
'If I do this, it works!
Range("A1:A4") = myArray
'But I want this a
在工作中,我们经常使用这个Excel VBA函数:
Sub Find_Matches()
Dim CompareRange As Variant, x As Variant, y As Variant
' Set CompareRange equal to the range to which you will
' compare the selection.
Set CompareRange = Range("H2:H9")
' NOTE: If the compare range is located on a
为什么0/0在VBA中抛出Overflow error,而在.Net语言中它只是一个Division by 0错误?
在C#中,它是一个System.DivideByZeroException
static void Main()
{
int k = 0;
int p = 0;
Console.WriteLine(k/p);
}
Div/0错误存在于VBA中。但是 0/0给出了溢出异常,而任何除以0的东西都会产生Div/0异常:
Public Sub TestMe()
'Integer
PrintAndCheck (11)
当我试图得到两个数组Arr1和Arr2的相关系数时,我在VBA中得到了这个错误。
Dim arr1() As Variant
Dim arr2() As Variant
arr1 and arr2 are initialized in the function.
Dim result As Double
result = Application.WorksheetFunction.Correl(arr1, arr2)
Correl方法引发异常
“无法获得工作表函数类的correl属性”
任何知道什么可能是例外的原因。
编辑:
我认为当一个数组的所有元素都相同时,就会出现这个问题。在这种情况
我正在尝试将一个Word VBA过程转换为一个AppleScript,并且只有部分运气。
下面是VBA过程的第一个版本:
Public Sub postprocessMerges1()
Dim rng As Range
Selection.HomeKey unit:=wdStory
With Selection.Find
.ClearFormatting
.Forward = True
.Wrap = wdFindStop
.Format = False
Do
我使用下面的函数从Excel online获取范围值。我使用的是微软开发的脚本实验室插件。
Excel.run(function (ctx) {
var sheetName = "Sheet1";
var rangeAddress = "K6:K500";
var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
range.load('values');
return ctx.sync().then(fu
在我的VBA代码中有一个Select Case,Case is语句,例如Case is > 250或Case is < 18。当满足该条件的项时,我的代码会复制该特定项并将其粘贴到新的范围中。但是,我有一列包含澳大利亚的州(新南威尔士州、VIC、QLD、WA、SA、NT、ACT、TAS)。所有这些都是可以的,但是如果有一天文本不是一个状态,我也想将它复制并粘贴到一个新的范围,但我不知道那个文本会是什么。因此,我需要一个代码,说,情况是(如果不是澳大利亚国家)复制项目到新的范围。
有什么想法吗?我有一节将做复制和粘贴ok,除非语句有相当大的变化。
我的数据集包含特定位置的汽车。生成位置的程序通常给出一个字母(如"A“、"B”或"C")。但是,有时它会显示"road road“作为位置。出于格式化的目的,我想从VBA脚本的字符串中删除"road along“。这确实需要在VBA中完成,因为我的数据集非常大。
这是一个例子(汽车4):
我试过了:
If Instr(Location, "road along")>0 Then
replace("road along","")
Else Do Nothing
End If
如果我在输入表上应用自动筛选器,然后运行VBA代码,则代码不关心自动筛选器。
但是,有时在自动过滤的工作表上运行VBA代码会破坏程序的结果。
所以,我的问题是: VBA关心自动过滤器吗?
例如:
Sub check()
Dim rng as range
Set rng = Sheets("input").Range("A1")
row = 0
Do until rng.offset(row,0) = ""
row = row + 1
Loop
End Sub
在上面的代码中,VBA并不关心在