我是新的excel VBA和在这个项目中,我想如果单元格B4不是空的,单元格C4是空的,那么应该高亮显示C4。 同样的代码应该循环到B16单元格。 “AMA79”是工作表名称。 我得到对象'_Global'的方法'范围'失败。 错误使用此代码。 你可以让我知道该怎么做才能纠正这个问题。 Dim i As Integer Dim rng As Range Set rng = Range("B4:B16") For i = 4 To 16 With ThisWorkbook.Worksheets("AMA79") If Range(B, i).Value <> "" And Range(D, i).Value = "" Then Range(c, i).Interior.Color = vbYellow End If End With Next i
我正在从SQL Server提取的一些数据中提取excel。 我遇到了一个小问题,我想问你们如何着手。 基本上我正在运行一个包含ClientName和5个答案的报告。 Name….Q1….Q2….Q3….Q4 JOHN 1 2 2 2 事情是,我需要显示提取值1-5,但保存的值是1801-1805。我应该如何操作提取数据。 我应该只是在我的SELECT语句中做一个case语句,比如… Select FirstName, LastName, case when Q1 = 1801 then '1', when Q1 = 1802 then '2'…. 事情是我可能必须做的所有问题….? 这个报告将写在一个VB6应用程序 – 所以我要做的就是拉这个数据,然后循环通过每个logging集,只是把它写到excel。
我有Excel工作表对象,其中一些列处于不可见模式。 我想将这些工作表保存为仅包含可见列的CSV文件。 我的主要要求是不使用Copy方法 ,csv文件应该包含所有具有值和格式的可见列。 Private Sub SaveAsCSV_TSA(ByVal xl As Excel.Application, ByVal xlsheet As Excel.Worksheet, ByVal CSVSavePath As String) On Error GoTo BottomLine Set xlwbook1 = xl.Workbooks.Add Dim xlsheet1 As Worksheet Set xlsheet1 = xlwbook1.Sheets.Item(1) xlsheet1.Activate xlsheet.Cells.SpecialCells(xlCellTypeVisible).Copy xlsheet1.Paste xl.CutCopyMode = False xlwbook1.SaveAs FileName:=CSVSavePath, FileFormat:=xlCSV xlwbook1.Close SaveChanges:=False Set xlwbook1 = Nothing Set xlsheet1 = Nothing BottomLine: If […]
我开发了一个使用VB6的交易应用程序。 在那里,我使用Excel应用程序对象如下(Excel.Application)。 Set xl = New Excel.Application Set xlwbook = xl.Workbooks.Add Dim xlsheet As Worksheet Set xlsheet = xlwbook.Sheets.Item(1) 而且,我已经使用高级安装程序创build了该VB6的exe的安装程序,并具有指向-O2010pia.msi (启用访问Excel.Application的选项)的Office 2010主互操作程序集的先决条件。 即使安装了Office 2010主互操作程序集,我也无法运行已安装的应用程序。 它会抛出Object Required错误。 注意:关于这一点我已经用google了,其中很多人提出了C#和/或VB .Net环境的解决scheme。 我想为VB6环境。 请帮我解决这个? 提前致谢。
序幕 我正在开始一个新的项目,基本上我正在使用Excel作为另一个程序的日志。 这就是说,这是VBA(仅在使用Excel对象时)和VB6(主“主”编程语言)的混合。 这就是为什么这两种语言都被贴上标签,因为我预料到使用标签的可恶评论; 我正在寻找两种编程语言的混合解决scheme! 另外,我知道一些VBA活动人士会说永远不会使用ActiveSheet 。 我不关心这个,我想提前说谢谢 。 我在这个工作簿中有一张纸,因为它的主要function是作为日志。 ActiveSheet将始终是唯一的表单。 我有以下代码,我不太熟悉将工作簿设置为object ,这可能是我收到Bad Index错误的原因。 Sub Test() ' Checking if Excel is open, if not, open it. Dim xL As Object, wBook As Object, iCloseThings As Byte On Error Resume Next Set xL = GetObject(, "Excel.Application") On Error GoTo 0 If xL Is Nothing Then iCloseThings […]
我想将其types的货币值添加到Excel工作表。 我为此创build了以下代码片断。 Public Sub WorkSheetForCurrencies(ByRef ProductsCollection As VBA.Collection, ByRef cur As String, ByRef ExgRate As Double, ByRef symbol As String) Dim index As Long Dim objProduct As Product index = 2 For Each objProduct In ProductsCollection If symbol = "£" Then 'Way 01: mobjCSVWorkSheet.Cells(index, 8).NumberFormat = "-[$£-809]* #,##0.00_-;-[$£-809]* #,##0.00_-;_-[$£-809]* " – "??_-;_-@_-" ElseIf symbol = […]
我目前正在制作一个Excel VB应用程序。 不过,我现在卡住了。 我试图做两个OptionButtons之间的select强制性的。 我尝试了代码 If Me.PWebOption.Value = False & Me.BWebOption = False Then MsgBox "Please choose a type of website" Exit Sub End If 但是这并没有给我所需的结果。 我试图把它们放在括号内,但仍然卡住了。 我敢肯定,这是一个微不足道的答案,但我只是与VB握手,所以请原谅我。 提前谢谢了。
我想按datesorting,这是我的工作表的中间列。 即时通讯从一个数据库系统获取我的数据,但我不能在该系统中sorting我需要sorting的数据,这是我的: | A FIELD | B FIELD | C FIELD | DATE FIELD | E FIELD | F FIELD | | Adata1 | Bdata | Cdata | 09.05.2011 | Edata | Fdata | | Adata2 | Bdata | Cdata | 03.05.2011 | Edata | Fdata | | Adata3 | Bdata | Cdata | 21.05.2011 […]
我正在创build一个基于特定列中的文本自动完成文本的Excel工作表。 在试图让自己失败后,我在网上查找了可以修改并join到我的程序中的示例代码。 (而不是抄袭) 我从http://www.ozgrid.com/forum/showthread.php?t=144438下载了Workbook1.xls 代码是 Option Explicit Dim ufEventsDisabled As Boolean Dim autoCompleteEnabled As Boolean Dim oRange As Range Private Sub TextBox1_Change() If ufEventsDisabled Then Exit Sub If autoCompleteEnabled Then Call myAutoComplete(TextBox1) End Sub Sub myAutoComplete(aTextBox As MSForms.TextBox) Dim RestOfCompletion As String On Error GoTo Halt With aTextBox If .SelStart + .SelLength = Len(.Text) Then […]
无论我尝试什么方法(目前我正在使用Scripting.FileSystemObject),我只是不能正确读取这个XLS文件。 这是我的代码(我不想读取单元格,我想读取文件,就好像它是一个文本文件) Dim fso As New FileSystemObject Dim f As File Dim fsoStream As TextStream Dim strLine As String Set f = fso.GetFile("C:\Users\Admin\Desktop\ara\DOSYA.xls") Set fsoStream = f.OpenAsTextStream(ForReading) Do While Not fsoStream.AtEndOfStream strLine = fsoStream.ReadLine Text1.Text = Text1.Text & strLine Loop fsoStream.Close Set fsoStream = Nothing Set f = Nothing Set fso = Nothing 我得到的只是该文件的前5-6个字符,然后再多一点乱码,就是这样。 如果我在Excel中打开它工作正常。