设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3290|回复: 10
打印 上一主题 下一主题

[模块/函数] 请各位老师看看EXCEL录制的宏代码,在access的格式下,如何编写代码,谢谢

[复制链接]
跳转到指定楼层
1#
发表于 2015-11-10 12:13:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请各位老师看看EXCEL录制的宏代码,在access的格式下,如何编写代码,谢谢

Sub Macro1()
'
' Macro1 Macro
'
'
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
k = 2
For i = 1 To Sheet2.Range("b1") - 1
    If Range("d" & k) <> 1 Then
        'l = Range("d" & k) - 1
        For j = 1 To (Range("d" & k) - 1)
            Rows(k & ":" & k).Select
            Selection.Copy
            Selection.Insert Shift:=xlDown
        Next j
        For l = 1 To (Range("d" & k) - 1)
            Range("c" & (k + l)) = Range("c" & k) + l
        Next l
        
        k = k + Range("d" & k)
    Else
        k = k + 1
    End If
   
Next i
'Range("e1").Value = i
   

End Sub

结果是:
NameAgeCANumber
air
20
1
3
air
20
2
3
air
20
3
3
xia
22
4
2
xia
22
5
2
wang
19
6
1
ma
18
7
2
ma
18
8
2

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2015-11-10 12:18:36 | 只看该作者
本帖最后由 盗梦 于 2015-11-10 12:21 编辑

不明白前前后后的需求和代码的含义。不过都是vba,vb for application。
你可以定义Excel的Application对象之后,在那些sheet,range,row,selection,前面加上Excel的Application一般就行了

例如 dim xlApp as Excel.Application  或者
dim xlApp as object
set xlApp = createobject("Excel.Application")

Excel vba:
Range("A1")

在Access vba 改成:
xlApp.Range("A1")


3#
 楼主| 发表于 2015-11-10 12:49:22 | 只看该作者
盗梦 发表于 2015-11-10 12:18
不明白前前后后的需求和代码的含义。不过都是vba,vb for application。
你可以定义Excel的Application对 ...

盗梦 老师,谢谢您的帮助,看看能否将附件中的ACCESS添加个命令按钮,添加一些代码来生成一个临时表,结果和EXCEL的结果一样,谢谢
4#
 楼主| 发表于 2015-11-10 12:52:40 | 只看该作者
excel中的C列(CA)自动填充断号,并且复制相应的数据,看看ACCESS如何做到,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2015-11-10 14:29:23 | 只看该作者
这样,你先把数据导入数据库中,然后再处理.感觉会方便许多.
6#
 楼主| 发表于 2015-11-10 14:35:08 | 只看该作者
风中漫步 发表于 2015-11-10 14:29
这样,你先把数据导入数据库中,然后再处理.感觉会方便许多.

已经导入完成!并且建立了例子,可以在例子上进行修改,谢谢
7#
发表于 2015-11-10 14:56:46 | 只看该作者
j=0
for i=dmin(ca) to dmax(ca)'取得最大最小号,循环补号
    if dlookup()<>"" then '看顺序号是否存在,如果存在记住这个号.不记得这个函数怎么用了,你自己找下帮助.其他函数也有可以的,你自行选择.
       j=i
    else '如果不存在则补上
       if j<>0 then
          docmd.exesql("insert into tabel1 select name,age," & j & ",number from excel where ca='" & j & "')'好像是这个执行sql的命令,其他自己改下.
       end
    end
end
basic的东西忘的差不多了,只能帮你这些了
8#
发表于 2015-11-10 14:59:23 | 只看该作者
手头没有能跑这个的工具,所以没有调试.你自己改下吧,方法就是这样,你都是元老级的了,这些对你就是毛毛雨啦.
9#
 楼主| 发表于 2015-11-10 16:08:00 | 只看该作者
风中漫步 发表于 2015-11-10 14:59
手头没有能跑这个的工具,所以没有调试.你自己改下吧,方法就是这样,你都是元老级的了,这些对你就是毛毛雨啦.

谢谢帮助,我这个元老纯粹就是时间堆出来的!谢谢
10#
发表于 2015-11-10 17:37:55 | 只看该作者
本帖最后由 roych 于 2015-11-10 17:39 编辑

关于如何拆分的问题,我想,你应该发过不止三个帖子了吧?为什么不找找以前的帖子呢?拿来稍稍改下基本就能拿来用了。
http://www.office-cn.net/thread-113980-1-1.html
我不清楚你是不记得了还是懒得去找。如果是这两者的话,建议你开个淘贴,把自己发过的帖子整理下。如果都不是的话,你是否可以花那么一点点时间理解下ADO,或者理解下别人的编程思路吗?总不能类似的问题问几次吧?
如果你没时间去理解,那我也帮不了你。顺便说一句,我没什么耐性的。不必再私信给我了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-6 03:44 , Processed in 0.417655 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表