hi,本来想把改动的地方标出来,后来发现改动还蛮多的,就不一一标出了,现在应该可以运行了。
Sub Test()
Dim i As Integer, iRow As Integer
Dim strPath As String
Dim TheSheet As Worksheet
iRow = 1
Set TheSheet = ActiveWorkbookWorksheets("sheet1")
strPath = ""E:\可丢\hua"
With ApplicationFileSearch
LookIn = strPath
SearchSubFolders = True
Filename = ""
If Execute > 0 Then
For i = 1 To FoundFilesCount
'Range("A" & i) = FoundFiles(i)
WorkbooksOpen (FoundFiles(i))
For j = 1 To ActiveWorkbookWorksheetsCount
'ActiveWorkbookWorksheets(i)Cells(1, 1)Value = "a"
ActiveWorkbookWorksheets(j)UsedRangeCopy
TheSheetActivate
While TheSheetRange("a" & iRow)Value <> ""
iRow = iRow + 1
Wend
TheSheetRange("A" & iRow)Select
ActiveSheetPaste
ActiveWorkbookSave
Next j
Workbooks(WorkbooksCount)Close
Next i
End If
End With
End Sub
Sub li()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim m As Integer
'如果你的表的名字是“数据表”,则改为Sheets("数据表")select
Sheets("数据表")Select
'获取数据区的下边界
i = Cells(RowsCount, 1)End(xlUp)Row
'获取数据区的右边界
j = Cells(i, 1)End(xlToRight)Column
'做循环,往“E列”填数据,以后可能是F列等,都可以
'k, m是循环变量
For k = 2 To i
For m = j To 2 Step -1
If Cells(k, m) <> 0 Then
Cells(k, j + 1) = Cells(k, m)
Exit For
End If
If m = 2 Then Cells(k, j + 1) = 0
Next m
Next k
End Sub
你可以用视图-工具栏 往表里面加一个按钮,然后用VBA建一个模块,把上面的代码复制,然后把按钮与代码连起来,点一下按钮,就可以了
Excel VBA 定义全局变量的具体操作步骤如下:
1、首先我们打开电脑里的excel软件进入excel主界面。
2、然后我们鼠标右击下面的工作表(如sheet1),选择“查看代码”,就可以打开VBA编辑界面。
3、如图显示打开VBA编程界面。
4、接着就是在代码框里输入定义一个执行函数。
5、接着就是在代码框里输入全局变量,定义方式Globlal 变量,通过以上步骤即定义好了一个全局变量。
vba并不是太难,我想在学习的过程中注意以下几点即可:关于报班我认为没有必要
1 学以致用,不要为了学而学。工作中遇到的问题需要用到VBA的尽量用VBA,一方面提高工作效率,另一方面是练功;
2 多问多上网搜索。正常在使用VBA过程中的一些问题在网上都应该可以找到参考,有些甚至可以直接拿过来用。
3 可以使用EXCEL自带的“记录宏”功能,作为对入门的学习。
4 要用好VBA,要多学习一些关于表格的基础知识,比例什么是工作薄,什么是工作表,什么是单元格。再关注一些关于SQL的知识,会让你的表格使用更上一层楼。
5 买本关于VB的书籍比如(Excel 2007与VBA编程从入门到精通)
,学习一些编程的基础知识,了解数据类型,基本的语句,基本的算法。
Sub tt()
Dim i As Integer
For i = 3 To 100
SolverReset
SolverOk SetCell:="$L$" & i, MaxMinVal:=3, ValueOf:="0", byChange:="$G$" & i & ":$J$" & i
SolverAdd CellRef:="$G$" & i & ":$J$" & i, Relation:=4, formulaText:="整数"
SolverAdd CellRef:="$G$" & i & ":$J$" & i, Relation:=1, formulaText:="10"
SolverAdd CellRef:="$G$" & i & ":$J$" & i, Relation:=3, formulaText:="0"
SolverOk SetCell:="$L$" & i, MaxMinVal:=3, ValueOf:="0", byChange:="$G$" & i & ":$J$" & i
SolverSolve Userfinish = False
Next i
End Sub
上面这段是我以前做的规划代码你比较一下
你前面好像 SolverReset 没有重置
还有最后SolverSolve Userfinish = False 我用的时候是用的FALSE 就是最后规划的时候那个提示我是过滤掉的
还有 在VBA界面要把工具 引用 SOLVER勾上
最后你录制的代码中可能有错误的 VBA录制规划求解的时候 有的代码是错的
上面的ByChange 你自己改过来了其他要还有报错 你再改下看看
我搞了半天没搞请你代码 你把问题描述一下
G21-YANG@163COM 我给你录代码吧
我测试了一下 加上SolverReset是可以的 就是最后面的
Engine:=1, EngineDesc:="GRG Nonlinear"
我这里没这参数 你用的EXCEL 07么 我这里提示找不到参数删除这段我就可以运行了
《EXCEL2007VBA开发技术大全》从读者所需出发,采取先基础、后实例,以及从零开始循序渐进的讲解方式,全面、系统且深入地介绍Excel 2007 VBA编程技术。读者无论有无基础,都可以轻松学习,并高效掌握。书中的内容丰富实用,通过基础知识和应用示例的结合并穿插许多VBA编程技巧和设计规范等知识,提供了详细的编程思路和大量的代码范例。从而指导读者学习Excel 2007 VBA编程技术,最终完成从入门到精通的大跨越。
欢迎分享,转载请注明来源:表白网
评论列表(0条)