为了制作一些报告,我需要解析一些excel文件.当我尝试从工作表中选择记录时,我得到下一个错误:名称'1的包围无效.页面$".
继承我的代码:
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [1. page$]", connectionString);
Run Code Online (Sandbox Code Playgroud)
我知道如果我将工作表重命名为"page",它会起作用,但由于我没有命名这些工作表,我需要知道如何修复此查询以实现它的工作原理.我该怎么办?
我有一组用户定义的vba函数,它们位于excel模块中,然后从excel电子表格中调用...此时一切正常.
我被要求将vba从模块移动到工作表的代码页.当我这样做时,我发现我无法调用工作表中单元格中的任何函数......名称根本不显示为现有.有没有办法从Excel单元格调用工作表函数?此外,是否有任何问题从另一个模块或工作表代码中的用户定义函数调用工作表函数?
编辑:
我发现如果我通过sheetname.functionname调用,它会抛出一条错误消息,其中包含"名称与Excel内置名称冲突或工作簿中另一个对象的名称"...如果我使用sheetname. anythingelse它只是解析为#NAME?
这是否意味着无法从工作表中调用excel工作表函数?
我正在尝试编写一个小函数,它接受一个文件路径(工作簿保存在哪里),targetpath(将保存pdf的地方),以及excel中的一串选项卡名称(管道(|)分隔).
该函数的用户不必输入一串选项卡名称(它是可选的),如果没有,我想选择所有可见选项卡并打印它们.如果用户在单独的工作表中有50个图表并且不想写"Chart1 | Chart2 | ...."之类的字符串,则会出现这种情况.
码:
For Each WSO.Name In WBO.Worksheets
strSheets = strSheets & WSO.Name & "|"
Next WSO
strSheets = Left(strSheets, Len(strSheets) - 1)
arraySheets() = Split(strSheets, "|")
WBO.Sheets(arraySheets()).Select
WBO.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
strFilePath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Run Code Online (Sandbox Code Playgroud)
For Each循环有两个问题:它不会抓取任何纸张,例如"Chart1",它只会抓取诸如"Sheet1"之类的纸张.此外,它将抓取隐藏的工作表,以便当我尝试选择它们时,我得到一个越界错误.
我不知道图表表格是否与常规表格不同,或者为什么还会选择隐藏表格.
假设我有一个工作簿,其中有6张作为Sheet1,Sheet2,Sheet3,Sheet4,Sheet5,Sheet6.
所以从这里我想删除Sheet1,Sheet2,Sheet3.我怎样才能做到这一点?
工作表A具有从工作表B收集的数据范围.工作表A有一个宏,用于计算数据是否高于某个值,然后调用电子邮件模块向所选用户发送电子邮件.
当在工作表A上手动输入数据时,宏工作,但是当从工作表B中提取数据时,它不会触发.
我不确定我的VBA代码需要更改什么.
Private Sub Worksheet_Change(ByVal Target As Range)
Call MailAlert(Target, "B5:M5", 4)
Call MailAlert(Target, "B8:M8", 7)
Call MailAlert(Target, "B11:M11", 6)
Call MailAlert(Target, "B14:M14", 2)
Call MailAlert(Target, "B17:M17", 4)
Call MailAlert(Target, "B20:M20", 1)
Call MailAlert(Target, "B23:M23", 3)
Call MailAlert(Target, "B26:M26", 1)
Call MailAlert(Target, "B29:M29", 5)
Call MailAlert(Target, "B32:M32", 1)
Call MailAlert(Target, "B35:M35", 7)
Call MailAlert(Target, "B38:M38", 20)
Call MailAlert(Target, "B41:M41", 0)
End Sub
Private Sub MailAlert(ByVal Target As Range, ByVal Address …Run Code Online (Sandbox Code Playgroud) 我想在Scala工作表中抑制辅助变量的输出:
val sqs = scen.rssis.toSeq.filter { case (ap,s) =>
s.exists(e => e.epoch > 1) }.sortBy { -_._2.length }.take(10)
//> sqs :
// *snip* a lot of stuff I'd rather not have
//| Output exceeds cutoff limit.
sqs foreach { case (api,s) =>
println(f"${scen.aps(api).ssid}%-10s ${s.length}% 5d")
} //> 2WIRE230 74
//| 2WIRE736 74
//| Jamie56 73
//| VVHOA 69
//| 2WIRE059 68
//| Rainsnet 68
//| 2WIRE519 67
//| 2WIRE604 65
//| neo_vex_24 63
//| ALEMANIA7 63
Run Code Online (Sandbox Code Playgroud)
有没有办法在Scala工作表中抑制赋值的输出?
我在尝试找出这个宏时遇到了很多麻烦,所以现在我在工作簿中使用了两张纸; 我想使用两种不同的工作簿,但这并不像问题那么重要.
为了解释,Sheet1列E是id号,在Sheet2列A中是id号,现在如果Sheet1 E中的任何值与Sheet2中A列中的值匹配,我需要宏来复制Sheet 2列D中的相应单元格所以基本上如果E5(来自表1)与Sheet2中的A1匹配,我需要宏来将Sheet2的D1输出到Sheet1的F5.如果Sheet1列E与Sheet 2列A中的值不匹配,那么删除Sheet1列F的值也会很好.
我有一些代码,但它只是粘贴Sheet2列D中的值,如果Sheet1列E的值与Sheet2列A中的值匹配.问题是当Sheet2粘贴的值粘贴在Sheet1的列F中且值不是与Sheet2中匹配的正确值匹配.他们只是愚蠢.因此,如果Sheet1列E是这样的
Sheet1 Column E Sheet1 F
1317 relays_120x120.jpg
1319 Control%20boards_120x120
1320 Control%20boards_120x120
Sheet2 Column A Sheet2 column D
1317 relays_120x120
1318 /relays_120x120
1319 ebay/SingleRunOval
Run Code Online (Sandbox Code Playgroud)
但实际上我需要它们全部相等,如果Sheet1列E的值不在Sheet2列中,则不要在Sheet1列中发布链接F将其留空.
这是我的代码
Sub FindMatches()
Dim oldRow As Integer
Dim newRow As Integer
Dim i As Integer
i = 1
For oldRow = 2 To 1170
For newRow = 1 To 1170
If Worksheets("Sheet1").Cells(oldRow, 5) = Worksheets("Sheet2").Cells(newRow, 1) Then
Worksheets("Sheet1").Cells(i, 6) = Worksheets("Sheet2").Cells(oldRow, 4)
i = i + 1
Exit For …Run Code Online (Sandbox Code Playgroud) 我已经在我的Mac上安装了Scala-IDE,在我的电脑上安装了Ubuntu 12.04.在那里,我创建了一个项目,包含一个包,并在那里有一个工作表.在我的Mac上,工作表显示右侧同一行上每一行的结果.例如:
package mypackage
object myworksheet {
println("Hello World!") > Hello World!
}
Run Code Online (Sandbox Code Playgroud)
但是在Ubuntu上,我没有看到右边的结果.我已经尝试在工作表中进行更改并保存它,但它没有任何区别.
有人知道如何在我的Ubuntu机器上获得这些内联结果吗?
我有大量的EXCEL文件(即200个),我想将一个特定的工作表从一个工作簿复制到另一个工作簿。我做了一些调查,但找不到使用Openpyxl的方法
这是我到目前为止开发的代码
def copy_sheet_to_different_EXCEL(path_EXCEL_read,Sheet_name_to_copy,path_EXCEL_Save,Sheet_new_name):
''' Function used to copy one EXCEL sheet into another file.
def path_EXCEL_read,Sheet_name_to_copy,path_EXCEL_Save,Sheet_new_name
Input data:
1.) path_EXCEL_read: the location of the EXCEL file along with the name where the information is going to be saved
2.) Sheet_name_to_copy= The name of the EXCEL sheet to copy
3.) path_EXCEL_Save: The path of the EXCEL file where the sheet is going to be copied
3.) Sheet_new_name: The name of the new EXCEL sheet
Output data:
1.) Status= If 0, …Run Code Online (Sandbox Code Playgroud) 我是Excel-VBA的新手,我正在尝试编写一小段代码,这些代码是由某人更改工作表中单元格的值而触发的.如果更改的单元格的值小于零,则应将其设置为零.代码如下所示:
Private Sub Worksheet_Change(ByVal Target As Range)
'Debug.Print Target.Address
If Target.Column = 6 Then
For Each Cell In Target.SpecialCells(xlCellTypeConstants, 3)
If Cell.Value < 0 Then
Cell.Value = 0
End If
Next
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
现在发生的是当我更改第6列中任何单元格的值时,包含小于零的数字的工作表中的每个单元格也会更改为零.
我认为为Worksheet_Change事件处理程序创建的"目标"对象只包含已更改的单元格/单元格,因此我的代码只会更改已修改并首先触发事件的单元格的值.
我试图通过使用Debug.Print输出对象的地址来帮助自己.它打印出工作表中每个单元格的地址,其值小于零,因此我假设处理程序运行了几次.
我实际上找到了问题本身的解决方法,但我的问题是:我如何使用Worksheet_Change事件失败,以及我将来可以做些什么来解决这些问题呢?