我已经潜伏了一段时间,发现它非常有用,所以感谢你的帮助!
我正在尝试编写一个宏来将图像嵌入到单个文件的工作表中并调整它们的大小,同时如果需要再次放大,则保持图像的完整分辨率不变.首先我试过:
ActiveSheet.Pictures.Insert(imageName).Select
With Selection.ShapeRange
.Height = 100
.Width = 100
End With
Run Code Online (Sandbox Code Playgroud)
这基本上插入了图片的链接,如果图像文件被删除或excel文件移动到另一台计算机,链接将被破坏.接下来我尝试了:
ActiveSheet.Shapes.AddPicture Filename:=imageName, _
linktofile:=msoFalse, _
savewithdocument:=msoCTrue, _
Width:=100, _
Height:=100
Run Code Online (Sandbox Code Playgroud)
此代码也有效,但插入前图像大小调整为100*100像素,因此原始文件分辨率会丢失.
有没有办法插入图像文件,然后缩小它们的大小,以便保留原始分辨率?
非常感谢,亚当.
我目前正在做一个项目,涉及将大型数据集过滤为可以在图表上绘制的可管理数量的数据点。
我用 Javascript 编写了以下代码,该代码迭代一系列数据并以给定步长选取第一个值,在本例中起始值 = 0,步长 = 0.1。这非常有效并且执行速度非常快;我还没有量化它,但对于 >10000 个数据点来说绝对是 <1 秒。
var data = [ ... ];
var filteredData = [];
var index = 0;
var step = 0.1;
for (var i=0; i < data.length; i++) {
if(data[i] >= index) {
filteredData.push(data[i]);
index+=step;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我们所有的数据都以 Excel 工作簿的形式传入,因此我使用 VBA 将代码重写为 Excel 宏,如下所示,将数据点输出到相邻列。与 JS 等价物相比,处理相同数量的数据点需要很长的时间,处理 10000 个数据点大约需要 20 秒。
Dim dataRange As Range
Set dataRange = Range(Range("A8"), Range("A8").End(xlDown))
Dim index As Double
Dim stepsize As Double
Dim …Run Code Online (Sandbox Code Playgroud)