对于下面的代码, If Sheets("sheet1").Range("A1").Value = "option_1" Then Sheets("sheet1").Range("A1").Value = "option_2" ElseIf Sheets("sheet1").Range("A1").Value = "option_2" Then Sheets("sheet1").Range("A1").Value = "option_3" ElseIf Sheets("sheet1").Range("A1").Value = "option_3" Then Sheets("sheet1").Range("A1").Value = "option_4" … End IF 和 Select Case Sheets("sheet1").Range("A1").Value Case Is = "option_1" Sheets("sheet1").Range("A1").Value = "option_2" Case Is = "option_2" Sheets("sheet1").Range("A1").Value = "option_3" Case Is = "option_3" Sheets("sheet1").Range("A1").Value = "option_4" … End […]
如何在Excel中使用VBA来确定包含错误单元格(例如#N/A或空单元格)的范围的最大/最小值? 我知道这是一个相当简单的任务来使用类似的东西来克服Excel数组公式 =MIN(IF(A1:A10="#N/A")) 但是我非常想用VBA来完成这个任务。 我正在处理数千行数据,所以最快速的解决scheme将是首选。 非常感谢!
如何检测excel中的单元格是否合并? 如果单元格被合并,我该如何读取值?
我需要将这些date的格式设置为yyyy / mm / dd来查询MySQL数据库 – 查看这两个语句,你会认为它们会产生相同的结果,对吗? dateOne = Format(#9/1/2013#, "yyyy/mm/dd") dateTwo = Format(#9/1/2013#, "yyyy/mm/dd") dateOne现在等于2013/09/01,而dateTwo等于2013年9月1日。 我疯了吗? 这发生在我的脚本刚开始,我有Option Explicit,我知道这是保存到正确的variables.. Sub main() Dim dateOne, dateTwo As Date Dim answer As Integer answer = MsgBox("Would you like to generate a Transfer Report?", vbYesNoCancel + vbQuestion) If answer <> 6 Then Exit Sub 'dateOne = InputBox("Input the first […]
我想基于存储在工作表中的值dynamic设置标签数组的标题(在VBA表单中)。 到目前为止,我可以像这样一个一个地设置它们: Label1.Caption = MySheet.Range("A1").Value Label2.Caption = MySheet.Range("B1").Value Label3.Caption = MySheet.Range("C1").Value … 有很多标签遵循循环模式,我想使用更聪明的东西,比如: 'Method1 For i = 1 To X Dim MyLabel as Object: Set MyLabel = "Label" & i MyLabel.Caption = MySheet.Cells(i + 1, i).Value Next i 'Method2 For i = 1 To X Label(i).Caption = MySheet.Cells(i + 1, i).Value Next I 'Both Methods […]
我想着色整行如果该行中的两个单元格具有相同的值。 这里是我现在的代码: For i = 2 To LastRow If Worksheets("Request Results").Cells(i, 4).Value <> Worksheets("Request Results").Cells(i, 6).Value Then Cells(i, 1).EnitreRow.Interior.ColorIndex = 255 ElseIf Worksheets("Request Results").Cells(i, 4).Value = Worksheets("Request Results").Cells(i, 6).Value Then Cells(i, 1).EntireRow.Interior.ColorIndex = 5296274 End If Next i 循环首先进入else语句,并在Cells(i, 1).EntireRow.Interior.ColorIndex = 5296274行上出现“下标超出范围”错误,我不太清楚为什么。 有谁知道什么可能导致这个错误? 我所尝试的一切都失败了。
我试图了解Excel VBA中的worksheets和worksheet obj之间的区别。 我从MSDN参考了解到, worksheet是worksheets和worksheet的子对象。 但是,我们使用worksheets obj引用每个工作worksheets ,而不是worksheet obj。 例如 worksheets("ExcelIsCool").range("a1").value -> CORRECT worksheet ("ExcelIsCool").range("a1").value -> INCORRECT 我的问题是两者之间的区别是什么? worksheet仅用于声明一个variables(迄今为止唯一使用的地方)。 例如 dim wks as worksheet
我一直在研究VBA中对象属性和方法的底层结构。 我刚刚读过,每个对象的所有属性和方法都列在开发者框的“对象浏览器”中。 我被提示看这个的原因是我使用了一个没有在对象浏览器中列出的方法。 我用了: Sheets("Front face").Shapes("Drop Down 12").ControlFormat 这允许我然后使用.List来改变形状。 但是.ControlFormat不是在对象浏览器中列出的属性/方法。 任何人都可以解释吗?
这个脚本给我一个错误,因为它消耗了太多的资源。 我能做些什么来解决这个问题? Dim oSht As Worksheet Dim i As Long, j As Integer Dim LRow As Long, LCol As Long Dim Email1Col As Integer, Email2Col As Integer, Email3Col As Integer Dim arr As Variant Dim SplEmail3 As String 'Definitions Set oSht = ActiveSheet Email1Col = 6 Email2Col = 7 Email3Col = 8 '———– With oSht […]
我试图find像Environ这样的function来find我的业务中的主要驱动器已经映射到特定的PC上的驱动器。 使用文件path“G:\ Eworking \ SET \ Operations \ file”我知道我的电脑已经映射,以便该文件path在G驱动器内,但其他可能映射不同,所以我想确定它是哪一个。 我已经尝试了如果其他方法通过字母表,然后做一个if Dir([filepath]) then之前(见下文),但我想知道是否有一个更好的方式做到这一点? Sub LoopThroughDrives() sFilePath As String sFilePath = ":\Eworking\SET\Operations\file" If Dir("A" & sFilePath) > 0 Then msgbox ("It's in drive A") Else If Dir("B" & sFilePath) > 0 Then msgbox ("It's in drive B") Else If Dir("C" & sFilePath) > 0 Then msgbox ("It's […]