Tag: 程序

VBA – Excel程序太大

从阅读以前的答案我明白我需要分手我的代码。 我只是需要帮助做到这一点。 我有一个大的select案例程序,大约有50个select。 很棒! 直到我编程的一半“case is =”代码parsing行如果情况是真的。 看来我的variables“Dataline”不能传递给子程序。 如何将Linevariables传递给我的Sub。 Open fName For Input As #FileNum While Not EOF(FileNum) 'read in data one line at a time. Line Input #FileNum, Dataline 'Read first three characters of line to determine Line Name LineName = Left(Dataline, 3) 'Find line Name them parse Select Case LineName Case Is = […]

通过更改值来影响不同的过程

我有这个调用其他程序的主程序。 但在两个地方,我需要检查所有的值是否正确。 如果不是,我希望这个主程序退出。 我想要做的是检查我的子程序中的值,如果它们不正确,将exitall更改为true,这会导致子程序停止。 事情是,我相当肯定,如果我在子程序中把exitall的值改成true,它不会影响我的主程序。 我的问题是,如果在我的子程序中更改,我如何使我的主程序中的exitall更改? 谢谢。 Sub Allstepstogether() Dim r As Integer Dim exitall As Boolean Dim answer As Variant Dim hda As Boolean Dim wdfh As Variant hda = False exitall = False Call Clean For Each cell In ThisWorkbook.Sheets("Heyaa").Range("C2:C15") If Weekday(Date) = vbMonday Then If CDate(cell.Value) = Date – 3 hda = […]

如何在VBA中纠正过程太长

我现在终于修好了我所有的问题,程序太长了。 我已经看到了这个网站上的其他修复,但有一点模糊。 我的代码是这样开始的: Private Sub ComboBox6_Change() If ComboBox1.Value = "CONVERTING" And ComboBox2.Value = "SHEETING" And ComboBox3.Value = "LITHO" And ComboBox4.Value = "LESS THAN 50BS" And ComboBox5.Value = "WIDTH > 46in" And ComboBox6.Value = "LENGTH > 60in" Then UserForm1.ListBox1.AddItem "SHEETING (LITHO, LESS THAN 50BS, WIDTH > 46in, LENGTH > 60in) FG $0.0389/LB" End If If ComboBox1.Value […]

创build一个接受variables的过程,然后将另一个返回给Excel VBA中的调用过程

我想创build的function,将允许我将一个variables传递给一个过程,让它打开一个基于该variables的文件,然后将文件path返回到调用过程。 我有打开文件等的代码,但由于在程序中可以调用多个地方,我不希望它在那里,但只是将文件path返回到variables(然后可以使用从打开的文件加载字段)。 加载我正在使用的文件的代码如下,我将如何将其转换为一个过程来做我所需要的? 'Open the file NameOfFile = ActiveWorkbook.Worksheets("Parameters").Cells(8, 2).Value PathToFile = Left$(NameOfFile, InStrRev(NameOfFile, "\") – 1) FileNameNoPath = Mid$(NameOfFile, InStrRev(NameOfFile, "\") + 1) NameOfFile = FileNameNoPath CompleteFilePath = PathToFile & "\" & NameOfFile On Error Resume Next Set File1 = Workbooks(NameOfFile) If Err.Number <> 0 Then 'Open the workbook Err.Clear Set File1 = Workbooks.Open(CompleteFilePath, […]

VBA如何将一个过程从一个Excel工作表复制到另一个

复制整个工作表是不是一种select,因为我有其他代码将触发更改复制工作表的一些单元格,因此它将阻止副本。 如何将第一张工作表中的程序复制到另一个? (将第一张工作表中的所有单元格复制到新的单元格之后)

退出后Excel Ole对象静止进程列表

我有这个代码: function XlsToStringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean; const xlCellTypeLastCell = $0000000B; var XLApp, Sheet: OLEVariant; RangeMatrix: Variant; x, y, k, r: Integer; begin Result:=False; //Cria Excel- OLE Object XLApp:=CreateOleObject('Excel.Application'); try XLApp.Visible:=False; XLApp.Workbooks.Open(AXLSFile); Sheet:=XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1]; Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; x:=XLApp.ActiveCell.Row; y:=XLApp.ActiveCell.Column; AGrid.RowCount:=x; AGrid.ColCount:=y; RangeMatrix:=XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value; k:=1; repeat for r:=1 to y do AGrid.Cells[(r – 1),(k – 1)]:=RangeMatrix[K, R]; […]

如何访问Access中的子对象之间的对象variables

我有一个访问模块sub(),通过查询创build数百个统计列表。 我开始使用logging集方法创build列表,然后将值传输到Excel电子表格。 我的问题是,我得到一个错误,我的程序无法编译,因为它太大,大于64K。 所以,如果我把它分成另一个模块中的第二个子元素,那么所有的都是明智的。 但是在我的生活中,我无法参考第二部分中的对象。 我怀疑我可以使用with语句,但是在search论坛之后,我无法弄清楚不会抛出错误的语法。 我坚持在对象的引用需要在第二个子顶部的点。 这是我有的代码 Public Sub SomeSub() Dim lngColumn As Long Dim xlx As Object, xlw As Object, xls As Object, xlc As Object Dim dbs As DAO.Database Dim rst As DAO.Recordset Dim blnEXCEL As Boolean, blnHeaderRow As Boolean Dim sqlMin As Variant blnEXCEL = False blnHeaderRow = False ' Establish […]

是否有可能通过内存从Excel导入数据?

假设打开一个新的Excel文件并input数据。 外部的C#应用​​程序可以挂钩到Excel进程并从中获取数据吗? 而且,Excel文件从不保存到文件中。 这难道不能做到吗?还可以指导我如何实现这一目标的正确方向。

VBA:=预计一个子

我有一个程序: Sub FormulaToNumber(sheetName As String, sheetRange As String) Dim sh As Worksheet, Cell As Range, Plage As Range Set sh = Worksheets(sheetName) sh.Select With sh Set Plage = .Range(sheetRange) For Each Cell In Plage Cell.Value = Format(Cell.Value, "Fixed") Next End With Application.CutCopyMode = False End Sub 而我正试图打电话给我的程序: FormulaToNumber("temps_ress", "D3:O95") 但Excel不能让我打电话给我的程序,一个消息框出现在这个文本:“错误:=预期”我想它需要一个assination像:FormulaToNumber(“temps_ress”,“D3:O95”)=variables,但为什么? !

无法杀死Excel进程

我正在使用下面的代码来做一些复制和粘贴excel文件: Imports Excel = Microsoft.Office.Interop.Excel Imports System.IO Imports System.Runtime.InteropServices Private Sub btnCombine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCombine.Click Dim xlAppSource As New Excel.Application Dim xlAppTarget As New Excel.Application Dim xlWbSource As Excel.Workbook Dim xlWbTarget As Excel.Workbook Dim xlsheetSource As Excel.Worksheet Dim xlsheetTarget As Excel.Worksheet Dim xlRangeSource As Excel.Range Dim xlRangeTarget As Excel.Range […]