Office中国论坛/Access中国论坛

标题: 请各位老师看看EXCEL录制的宏代码,在access的格式下,如何编写代码,谢谢 [打印本页]

作者: yanwei82123300    时间: 2015-11-10 12:13
标题: 请各位老师看看EXCEL录制的宏代码,在access的格式下,如何编写代码,谢谢
请各位老师看看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

作者: 盗梦    时间: 2015-11-10 12:18
本帖最后由 盗梦 于 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")



作者: yanwei82123300    时间: 2015-11-10 12:49
盗梦 发表于 2015-11-10 12:18
不明白前前后后的需求和代码的含义。不过都是vba,vb for application。
你可以定义Excel的Application对 ...

盗梦 老师,谢谢您的帮助,看看能否将附件中的ACCESS添加个命令按钮,添加一些代码来生成一个临时表,结果和EXCEL的结果一样,谢谢
作者: yanwei82123300    时间: 2015-11-10 12:52
excel中的C列(CA)自动填充断号,并且复制相应的数据,看看ACCESS如何做到,谢谢
作者: 风中漫步    时间: 2015-11-10 14:29
这样,你先把数据导入数据库中,然后再处理.感觉会方便许多.
作者: yanwei82123300    时间: 2015-11-10 14:35
风中漫步 发表于 2015-11-10 14:29
这样,你先把数据导入数据库中,然后再处理.感觉会方便许多.

已经导入完成!并且建立了例子,可以在例子上进行修改,谢谢
作者: 风中漫步    时间: 2015-11-10 14:56
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的东西忘的差不多了,只能帮你这些了
作者: 风中漫步    时间: 2015-11-10 14:59
手头没有能跑这个的工具,所以没有调试.你自己改下吧,方法就是这样,你都是元老级的了,这些对你就是毛毛雨啦.
作者: yanwei82123300    时间: 2015-11-10 16:08
风中漫步 发表于 2015-11-10 14:59
手头没有能跑这个的工具,所以没有调试.你自己改下吧,方法就是这样,你都是元老级的了,这些对你就是毛毛雨啦.

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

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

作者: yanwei82123300    时间: 2015-11-10 19:08
roych 发表于 2015-11-10 17:37
关于如何拆分的问题,我想,你应该发过不止三个帖子了吧?为什么不找找以前的帖子呢?拿来稍稍改下基本就能 ...

roych 老师谢谢您的批评,这个帖子是同事接用我的名字发的!给您造成麻烦了,致歉!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3