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) 作为指定区域, 可适应单元格的这类变更.
