小弟是做C的,公司让我做个excel表单,本人不会VBA啊,写了一点小代码,运行不起来,具体过程如下,excel表,BOOK1,有sheet1,sheet2,sheet3,alt F11,进入VBA编辑区,在工程资源管理器中,选了sheet1,然后在右边的编辑区域内选了Worksheet,后面的事件选了beforedoubleclick,代码如下,
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) '鼠标双击事件
If Target.Column = 1 And Target.Row > 1 Then
If IsEmpty(Target) Then
Target = "√"
Else
Target.ClearContents
End If
End If
End Sub
后面我选折了工具栏中向右的绿三角,就是运行子过程和子窗体,竟然出来了一个叫宏的对话框,我一想,不对啊,就关了,然后选了菜单栏中的调试中的编译VBAProject选项,但是编译了半天,VBAProject一直是灰色的,好像是没编译完(做C的,先入为主了),后来又试了试F5,还是弹出宏的对话框。
我就直接跑到excel表中,在里面双击了起来,什么反应都没有。
不知道是怎么回事。
请解答一下,谢谢了。很着急,也不知道公司养着一帮做报表的小姑娘做什么,郁闷。

解决方案 »

  1.   

    先要设宏安全性
    excel里(非程序编辑)
    工具——〉宏——〉安全性——〉中设好后保存关闭excel重新打开,会提示是否运行宏,选运行
      

  2.   

    你好,问题基本已经好了,上面的代码是我试验用的,现在起作用了,现在我改了下,主要是为了实现excel文件打开功能,比如说第一行第一列是芯片标签,双击会出来一个芯片的表。
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) '鼠标双击事件
    If Target.Column = 1 And Target.Row = 1 Then
    //If IsEmpty(Target) Then
    //Target = "√"
    //Else
    //Target.ClearContents
    打开芯片文件(伪码)// 怎么实现呢,用getopenfile?
    End If
    End If
    End Sub
    能详细点吗,这个涉及到文件路径问题吗。
      

  3.   

    额,我试验了一下,getopenfile,是打开文件对话框,通过这个获得文件的路径,但我现在不想要这个对话框,而是点击直接出芯片这张表,要是出对话框,然后再选的的话,我还不如多建点sheet呢。是在一个excel文件中,双击一个单元格,打开另外的一个excel表中的一个指定的sheet。能明白我的意思不~,不明白的话,给我个Q吧,那样交流起来能快点,呵呵