当前位置:首页 » 编程软件 » exl编程

exl编程

发布时间: 2022-09-27 02:13:26

A. exl vba编程求助

Subdsk()
Application.ScreenUpdating=False
DimWBAsWorkbook
DimFileName,SheetName
DimCopyRange
DimSheetsCount

FileDir=InputBox("要合并的文件夹目录")
FileType="xlsx"
FileName=Dir(FileDir&"/*."&FileType)

DoWhileFileName<>""
SetWB=GetObject(FileDir&"/"&FileName)
Fori=1To9
Forj=1To3
IfSheet1.Cells(i,j)=""Then
Sheet1.Cells(i,j)=WB.Sheets(1).Cells(i,j)
ElseIfIsNumeric(Sheet1.Cells(i,j))Then
Sheet1.Cells(i,j)=Sheet1.Cells(i,j)+WB.Sheets(1).Cells(i,j)
EndIf
IfSheet2.Cells(i,j)=""Then
Sheet2.Cells(i,j)=WB.Sheets(2).Cells(i,j)
ElseIfIsNumeric(Sheet2.Cells(i,j))Then
Sheet2.Cells(i,j)=Sheet2.Cells(i,j)+WB.Sheets(2).Cells(i,j)
EndIf
Nextj,i

WB.CloseFalse
FileName=Dir
Loop
EndSub

适用于你现在的9行3列数据

B. exl如何根据条件隐藏单元格

你这个问题啊,建议用VBA吧。

如果你的工作簿格式是.xls或.xlsx格式,必须另存为 启用宏的工作簿.xlsm格式。

另外,在打开.xlsm格式的工作簿时,如果提示你启用宏,必须点击启用。

方法:

第一步:按Alt+F11打开VBA编辑器。

第二步:在左侧双击要编程的工作表。

第三步:在右侧输入或粘贴下边这段程序。

然后关闭VBA编辑器即可。

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address(0, 0) = "N2" Then 'N2的值发生变更时

'根据不同值,指定不同行号

Dim Str$

Select Case Target.Value

Case 1

Str = "12:23"

Case 1.5, 2

Str = "15:23"

Case 2.5, 3

Str = "18:23"

Case 3.5, 4

Str = "21:23"

End Select

'隐藏指定的行号

If Str <> "" Then

Rows("1:" & Rows.Count).Hidden = False '显示全表所有行

Rows(Str).Hidden = True '隐藏指定的行号

End If

End If

End Sub

C. 各位大侠,VB6.0能引进Exl中的数据进行编程不

你是啥意思哦,我的理解是导入Excel的数据表到数据库里,然后就可以编程了吧!
其实我就用Access导入Excel的表格,用的是Access的自带的功能。

方法如下:打开Access,文件—>获取外部数据—>导入,然后按部就班做就行。注意,导入Excel的数据表的字段最后与Access的字段相同,免去了许多麻烦。
导入数据后,你想怎么处理数据都行!

D. vc 如何操作 excel2003(注意一定是2003) 编程

1.制作应用软件的时候,经常要把结果以报表的形式输出,当前使用较为广泛的当然是Excel表格,本文简略介绍在VC++6.0中如何使用Excel2003的库函数并对其进行编程。先创建一个对话框工程,命名为VCExcel。在对话框中添加一个按钮,控件ID为2.ID_RUNEXCEL(是不是很搞笑哇,不过没关系,它照样能实现强大的功能)。
再在该按钮上添加消息BN_CLICKED,其消息映射函数为OnRunexcel(),下面工作就是要完成这个OnRunexcel()函数。在这里我们通过一个实例来说明VC是如何调用Excel2003的接口编程的。
3.要编程输出一个如下表格。
格式如下:
1)表头的字体为宋体,加粗,颜色为白色,底色为深蓝,垂直水平居中对齐;
2)表中正文内容字体为宋体,颜色为深蓝,底色为灰色,垂直水平居中对齐;
3)全部边框,文本自动换行。
在BOOL CVCExcelApp::InitInstance()之中,int nResponse = dlg.DoModal()语句之后加入如下代码:
if(CoInitialize(NULL)==0)//初始化COM库
{
AfxMessageBox("初始化COM失败!");
exit(1);
}
在return FALSE;语句之前加入:::CoUninitialize();//释放COM库。
4.为了能调用Excel的接口我们打开MFC ClassWizard->Automation->Add Class->From a type library,选择[Excel的安装路径]/EXCEL.exe,然后把所有的类都添加进去,头文件为excel.h,源文件为excel.cpp。当然,你也可以只把一些比较常用的类如_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range加进去,因为网上流传的绝大部分教程都只添加这几个类,这完全根据个人的需要。至少还要用到Interior类(设置底色),Font类(设置字体),而且这样做又简单又方便扩展功能,不管三七二十一全部弄进去吧!但这样做会有一个问题,有可能产生类的名字冲突,例如本来你自己写了一个类叫Font,当你全部添加时又再次加入了Font类,这样就重复定义了,不过可以通过名字空间来解决这个问题。再在VCExcelDlg.cpp文件的头部添加(如果系统已经自动添加就不要重复添加了):
#include "VCExcel.h"
#include "comdef.h"
这样一来程序就可以自由调用EXCEL了,一切准备就绪。
5.下面先在CVCExcelDlg中添加如下成员变量,用来操控Excel应用程序、工作簿和单元格。
Range m_ExlRge;
_Worksheet m_ExlSheet;
Worksheets m_ExlSheets;
_Workbook m_ExlBook;
Workbooks m_ExlBooks;
_Application m_ExlApp;
我们利用加载Excel模板来生成要求的表格,在本工程Debug文件夹中建立一个Excel文件,命名为Template.xls。我们的OnRunexcel()代码如下(详见注释):
void CVCExcelDlg::OnRunexcel()
{
// TODO: Add your control notification handler code here

//用m_ExlApp对象创建Excel2003进程

if(!m_ExlApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
return;
}

//设置为可见
m_ExlApp.SetVisible(TRUE);
///////////////////下面得到应用程序所在的路径///////////////////
CString theAppPath,theAppName;
char Path[MAX_PATH];
GetMoleFileName(NULL,Path,MAX_PATH);//得到应用程序的全路径
theAppPath=(CString)Path;
theAppName=AfxGetApp()->m_pszAppName;
theAppName+=".exe";
//把最后的文件名去掉
int length1,length2;
length1=theAppPath.GetLength();
length2=theAppName.GetLength();
theAppPath.Delete(length1-length2,length2);
////////////////////////////////////////////////////////////////
CString TempPath="";
TempPath=theAppPath+"Template.xls";//EXCEL模板的路径
m_ExlBooks.AttachDispatch(m_ExlApp.GetWorkbooks(),TRUE);
m_ExlBook.AttachDispatch(m_ExlBooks.Add((_variant_t)TempPath),TRUE);//加载EXCEL模板
m_ExlSheets.AttachDispatch(m_ExlBook.GetSheets(),TRUE);//加载Sheet页面
//添加新的Sheet页面
m_ExlSheets.Add(vtMissing,vtMissing,_variant_t((long)1),vtMissing);
//删除第二个Sheet页面
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)2)),TRUE);
m_ExlSheet.Delete();
//把第一个Sheet页面的名字改变为TestSheet
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)1)),TRUE);
m_ExlSheet.SetName("TestSheet");
///////合并第一行单元格A1至D1//////
//加载要合并的单元格 m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A1"),_variant_t("D1")),TRUE);
m_ExlRge.Merge(_variant_t((long)0));
////////设置表格内容////////
m_ExlRge.AttachDispatch(m_ExlSheet.GetCells(),TRUE);//加载所有单元格
m_ExlRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("数学系研究生课程统计"));

m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)1),_variant_t("课程名"));
m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)2),_variant_t("课时"));
m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)3),_variant_t("难度"));
m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)4),_variant_t("教学方式"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)1),_variant_t("泛函分析"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)2),_variant_t("60"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)3),_variant_t("普通"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)4),_variant_t("老师讲课"));

m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)1),_variant_t("微分流形"));
m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)2),_variant_t("40"));
m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)3),_variant_t("变态难"));
m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)4),_variant_t("自学"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)1),_variant_t("二阶椭圆型方程与方程组"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)2),_variant_t("60"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)3),_variant_t("很难"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)4),_variant_t("讨论"));
m_ExlRge.AttachDispatch(m_ExlSheet.GetUsedRange());//加载已使用的单元格
m_ExlRge.SetWrapText(_variant_t((long)1));//设置单元格内的文本为自动换行
//设置齐方式为水平垂直居中
//水平对齐:默认=1,居中=-4108,左=-4131,右=-4152
//垂直对齐:默认=2,居中=-4108,左=-4160,右=-4107
m_ExlRge.SetHorizontalAlignment(_variant_t((long)-4108));
m_ExlRge.SetVerticalAlignment(_variant_t((long)-4108));
///////设置整体的字体、字号及颜色//////
Font ft;
ft.AttachDispatch(m_ExlRge.GetFont());
ft.SetName(_variant_t("宋体"));//字体
ft.SetColorIndex(_variant_t((long)11));//字的颜色
ft.SetSize(_variant_t((long)12));//字号
///////////设置标题字体及颜色////////// m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A1"),_variant_t("D1")));
ft.AttachDispatch(m_ExlRge.GetFont());
ft.SetBold(_variant_t((long)1));//粗体
ft.SetSize(_variant_t((long)13));
ft.SetColorIndex(_variant_t((long)2));
CellFormat cf;
cf.AttachDispatch(m_ExlRge.GetCells());
//////////////设置底色/////////////////
Interior it;
it.AttachDispatch(m_ExlRge.GetInterior());
it.SetColorIndex(_variant_t((long)11));//标题底色
////表格内容的底色//// m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A2"),_variant_t("D5")));
it.AttachDispatch(m_ExlRge.GetInterior());
it.SetColorIndex(_variant_t((long)15));
//////////////为表格设置边框/////////////
Range UnitRge;
CString CellName;
for(int i=1;i<=4;i++)
{
for(int j=1;j<=4;j++)
{
CellName.Format("%c%d",j+64,i);//单元格的名称 UnitRge.AttachDispatch(m_ExlRge.GetRange(_variant_t(CellName),_variant_t(CellName)));//加载单元格
//LineStyle=线型 Weight=线宽 ColorIndex=线的颜色(-4105为自动) UnitRge.BorderAround(_variant_t((long)1),_variant_t((long)2),_variant_t((long)-4105),vtMissing);//设置边框
}
}

//释放对象(相当重要!)
m_ExlRge.ReleaseDispatch();
m_ExlSheet.ReleaseDispatch();
m_ExlSheets.ReleaseDispatch();
m_ExlBook.ReleaseDispatch();
m_ExlBooks.ReleaseDispatch();
//m_ExlApp一定要释放,否则程序结束后还会有一个Excel进程驻留在内存中,而且程序重复运行的时候会出错
m_ExlApp.ReleaseDispatch();
//退出程序 m_ExlApp.Quit();
}

E. exl已经用宏命令做好了一个窗口,想要做成一个类似“*.exe”的程序来运行

上述答案都行不通
还是我来解决这个问题吧
点击“开始”-“运行”,输入:“regedit”
进入注册表编辑器,沿着如下路径:
HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Excel将Options此机器码删除即可。
有碰到上述问题的朋友不防一试。

F. EXCEL别人发过来的编程打不开,显示编译错误子过程或函数未定义,求高手解答~~~

函数未定义,和exl的版本有关系或者要加载的插件没加载
如果只是要用一个单元格引用另外个单元格的计算公式计算的话不用写宏的。
假如表达式在A1,选中B1,插入-名称-定义,上面输入一个名称,比如ABC,下面引用位置输入公式=EVALUATE(A1),然后在B1输入=ABC。

G. 在EXCEL中如何编写程序

1、打开excel软件,点击左上角“文件”;

H. 请问用exl如何做出这种格式的小学生加减法竖式。见图

这需要一点编程知识,在这上面也不好回答。

I. 求助EXL表格函数高手,我想实现下面的功能

函数无法实现
只有VB编程

J. 请教一个关于易语言编程的问题: 有一.exl电子表格文档,表格内有三列内容,现如何实现第一列内容

我没有学习易语言,但是我相信编程思想是一样的。
我大致说一下编程思想,首先用程序打开excel文档。
逐行读取里面的内容,第一列值添加到第一个下拉选择框选项中,第二列值添加到第二个下拉选择框选项中,第三列值添加到第三个下拉选择框选项中,即可完成功能。

热点内容
html编译成JavaScript 发布:2024-04-29 00:00:15 浏览:367
html编译器手机 发布:2024-04-28 23:59:22 浏览:518
大宇精雕机的密码是多少 发布:2024-04-28 23:50:02 浏览:457
androidapi查询 发布:2024-04-28 23:44:06 浏览:58
怎么升级加密狗 发布:2024-04-28 23:24:57 浏览:665
netgear远程访问 发布:2024-04-28 23:06:18 浏览:532
javaweb整合开发 发布:2024-04-28 23:03:49 浏览:457
福康中国服务器地址 发布:2024-04-28 22:47:20 浏览:746
mcryptphp 发布:2024-04-28 22:29:12 浏览:195
程序源代码加密 发布:2024-04-28 22:10:42 浏览:836