热门关键字:  总结  实习  工作  报告  打印机
当前位置 :| 首页>设备维护>

EXCEL常见问题五十问题解答

来源: 作者: 时间:2006-10-15 点击:

021.样修改此宏?

下面的宏是k版主帮我写的,从文件夹内汇入其他工作表表格。汇入范围为第五行、第L列。
如汇入范围改为第三行、第R列。
怎样修改此宏?

Public Sub Feed_in2()
Dim Row_dn, Row_dn1, i, j, k, m As Integer
Dim Path1, Str1 As String
Dim wb As Workbook
Row_dn = [B65536].End(xlUp).Row
Path1 = Application.ActiveWorkbook.Path
Str1 = ActiveWorkbook.Name
k = 5

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
        If Row_dn >= 5 Then
            Range("B5:L" & Row_dn).ClearContents
        End If
        With .FileSearch
            .NewSearch
            .LookIn = Path1
            .FileType = msoFileTypeExcelWorkbooks
            If .Execute <= 1 Then
                MsgBox "files no found": Exit Sub
            Else
                For m = 1 To .FoundFiles.Count
                    Str2 = Split(.FoundFiles(m), "\")
                    n1 = UBound(Str2)
                    Str2 = Str2(n1)
                    If Str2 <> Str1 Then
                        Set wb = Workbooks.Open((Path1 & "\" & Str2), True, True)
                        Row_dn1 = wb.Sheets(1).[B65536].End(xlUp).Row
                        For i = 5 To Row_dn1
                            For j = 2 To 12
                                Workbooks(Str1).Sheets(1).Cells(k, j) _
                                   = wb.Sheets(1).Cells(i, j)
                            Next j
                            k = k + 1
                        Next i
                        wb.Close False
                        Set wb = Nothing
                    End If
                Next m
            End If
        End With
        .EnableEvents = True
    End With
    End Sub
解答:除了B65536中的5,其余5都改成3;将Range("B5:L" & Row_dn)改成Range("B5:R" & Row_dn);将For j = 2 To 12改成For j = 2 To 17。

022.怎样控制textbox的只读,要使textbox中的数据不能改变(删除或修改),在属性里我没有找到
有相关的方法吗?
解答:Textbox.Enabled = False,直接修改控件属性都行。
又问:这样还不行,因为Textbox在显示上就灰显了,我想只让它不可改变值,在显示上还是原来的形式。
解答:那就用Label代替,设置BackColor和SpecialEffect属性。

023.请教个小问题!
你好:我录制了个删除工作表的宏,但每次运行后,总出现确认删除提示框,请问该如何编写,直接默认删除,不在作确认呢?
解答:Application.DisplayAlerts = False
代码为:Sub Dell()
     '
     '  Dell Macro
     '  DC.Direct 记录的宏 2003-11-14
        Application.DisplayAlerts = False
        Sheets("Sheet2").Select
        ActiveWindow.SelectedSheets.Delete

        ActiveWorkbook.Save
        Application.DisplayAlerts = True
      End Sub

024.小知识:当垂直滚动条滚动到无法显示1-3行时,冻结窗口,1-3行就好像被隐藏了,但是取消隐藏也不行。

025.选A1后,自动显示B1内容,有无方法实现。有A1列和B1两列,*D1处做了数据-有效性-序列-选择A1~A9
*D1选择A1时,要求在G1中自动跳出B1的内容, 选A2时,自动跳出B2的内容*余此类推。
解答:G1公式:=Vlookup(D1,A1:B9,2,0)
又问:假设,有C列中也有数据,我要在G1中显示C列中的数据,该怎么算?
解答:G1公式:=Vlookup(D1,A1:B9,3,0)

026. 向上填充的快捷键是什么?我只会向下填充的快捷键,向上-向左-向右的都是什么呢?
解答:向上-Alt+E,I,U。向左-Alt+E,I,L。向右-CTRL+R

027.下方单元格上移,包含该单元格的公式不要变化
哪位高手帮帮忙!我试验了很久也没找到解决的办法:
能不能做到删除单元格以后,下方单元格上移,包含该单元格的公式不要变化。或者是:按住shift拖动单元格,使两个单元格互相交换位置以后,包含该单元格的公式不要发生变化。注意,用加$的办法是不能解决这个问题的,如公式改为:=SUM($A$1:$A$9),经上述操作后,结果还是一样。
解答:=SUM(INDIRECT("A1:A10"))
新问题:但是还有一个问题:我这一列有2000多个数据,似乎不能通过拖动的办法将公式复制200遍,达到每10个1求和的结果。
解答:=IF(MOD(ROW(),10)<>0,"",SUM(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN(),)),,-1,-10,)))

028.一列中删除重复数据的方法
例如在C2:C500中有重复数据。在D2中 =COUNTIF(C2:$C$100,C2) 计算出 C2在此列中的出现次数,然后复制公式到整列,最后删除在D列中大于1的行即可.

029.哪为大侠来帮忙关于VBA的问题
小弟想同时对excel工作簿下的几个工作表进行插入图表的操作!这几个工作表中已经在相同的位置区域内输入了数据. 语言如下: 运行显示 "下表越界" (下划线的地方)。请问高手又什么办法解决,或者可以用其它的方法。
sub biaoge()
for a = 1 to 3
sheets("sheet(a)").select
    charts.add
    activechart.applycustomtype charttype:=xlbuiltin, typename:="两轴线-柱图"
  activechart.setsourcedata source:=sheets("sheet (a)").range("a1:j3"), plotby:=xlrows   
activechart.location where:=xllocationasobject, name:="sheet(a)"       activechart.hasdatatable = true
    activechart.datatable.showlegendkey = true
    activechart.legend.select
    selection.delete
 next a
end sub
解答:sheets("sheet(a)").select是错的。可以用sheets("Sheet_Name").select。

029.比较大小
例如512.03,我用函数取了这个数的最后两个数03用他与10比较,结果总是显示03>10,不知道是什么原因,请高手指点,谢谢!!!
解答:取后两位数结果是文本型,对比可用right(a1,2)*1>10或者用:value(right(a1,2))>10也可

030.讨论:用RANGE和CELLS选择单元格
EXCEL的基本元素就是单元格,第一步就是要学会操作单元格了,列举两种方式。
SUB RANGE() ‘用RANGE选择B5单元格
 RANGE(“B5”).SELECT
END SUB
SUB CELLS() ‘用CELLS选择B5单元格
 CELLS(5,2).SELECT
END SUB
RANGE编程时无法变化,CELLS可以通过变量选择单元格。
回应1:RANGE 一样方便, 甚至更方便. 实际使用中可以用一变量
srArea="B" & i
RANGE(srArea).SELECT
srArea="金额" ' 一命名为 金额 的单元格/区域
RANGE(srArea).SELECT
回应2:我觉得各有长处,如果有变量需要循环判断,用Cells相对比较简单,但是有时候固定区域的,命名后用Range更灵活。
回应3:没错. 帮助中也是推荐 CELL 的.
灵活性来讲, RANGE 要强多了, 而且使用时可以通过 . 提取符快速读取它的属性和方法.
另外, 对于可变更的工作表, 用 RANGE 来操作命名区域将增加程序的弹性.
比如工作中插入一行/列, VBA 中用 CELL 就可能导致运行操作错误, 而 RANGE(srArea) 作为指定区域, 可适应单元格的这类变更.

上一页 1 2 34 5 下一页
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
赞助商链接