2006年03月16日
删除Excel中重复的行的小脚本
来源:本站 作者:不见不散 点击数:1   发表时间:2006-3-16 14:19:53

目标:如果某行的X列的值跟某行的X列的值相等,则视此行为重复的行,予以删除.

脚本如下:

Sub deleteDouble()

    ‘用户输入
    Dim userInput
        userInput = Application.InputBox("输入需要检查的起始行,结束行,以及需要检察的列,格式如 1,20,C")
   
    Dim arrUserInput
        arrUserInput = Split(userInput, ",")
       
    Dim theColumn
        theColumn = Asc(arrUserInput(2)) – 64   ‘进行检验的列
       
    Dim theStart
        theStart = arrUserInput(0)  ‘起始行
       
    Dim theEnd
        theEnd = arrUserInput(1) ‘最后一行的号码.
   
    Dim i   ‘每一行的号码
    Dim j   ‘
    For i = theStart To theEnd
        For j = i + 1 To theEnd ‘从当前行至结尾.
            If Cells(i, theColumn) = Cells(j, theColumn) Then
                Rows(j).Delete
            End If
        Next
    Next
   
End Sub

2006年03月14日

来源:   http://www.ljf.cn/ReadArticle.asp?id=145

在你心情沮丧的时候,你会做什么?
来源:本站 作者:不见不散 点击数:1   发表时间:2006-3-14 17:22:47

A,找个朋友聊聊天.

这不愧是个好办法,不管聊天的内容是什么,总能引开你的注意力,暂时把困扰你的事情抛之脑后,而一段时间之后你惊觉而回过头来,发现困扰你的事情已经风消云散,原来不外如此,没什么大不了的事情.可是,想想,假如你找了好几个朋友,要么电话打不通,要么工作忙,突然间这个城市里好像没有一个人可以陪你放松一下似的,你的心情会如何呢?

B,自己去运动.

这个不愧是个好注意,心情不好的时候,往往是因为心理的疲劳所致,要么是工作压力太大,要么是感情道路不顺利,大脑的沮丧会发出一些信息,让你的新陈代谢也随之降低,这样身心都变得又懒又难受.这时如果暂时把烦恼的事情抛开,去跑出一身热汗,然后冲个热水澡,让身体的疲劳得到消除,新陈代谢恢复正常,灰色的心情自然也就色彩缤纷了.可是想一想,如果碰上雨天,并且前几天你刚刚参加了一次比较剧烈的运动,体内根本没有什么多余的能量了,并且又适逢小病初愈,再锻炼就变成心力交粹,于是你不得不中止这个计划,这时,你的心情如何呢?

C,买些好肉好菜,好好招待一下自己.

很多人会选择用吃来消除烦恼.有时候这一招也非常揍效,因为吃也是消除疲劳的高招.想着香喷喷的米饭,以及香甜多汗的牛肉,是不是一想起来都精神了几分呢?可是想一想,如果恰逢你口袋羞涩,近段时间又肠胃不适,吃起油腻的东西会拉得你直不起腰来,你还有敢动吃的心思吗?天寒地冻的天气,想一想在下午六点钟下班后,还要赶去菜市场买菜,还要回家洗干净厨具,还要自己做自己吃,嗯,想想都凄凉,大概只有在心情好的时候会做这种事情吧.

D,写写日记,向不存在的对象倾诉.

这个办法大概也有很多人使用过吧,要不然现在的blog为什么会如此盛行呢?人们总是渴求被别人理解,渴求被爱,或者被仰慕,写BLOG的动机之一,大概也就是这个了.想想写了文章,不但浏览量剧增,并且有许多FANS回复你,我想再差的心情,也会因为自己的成就感而变得热情高涨了吧?然而试了一下,发现阅者潦潦,别说回复,可怜的计数器连跳都懒得跳一下,增加的两三个点却原来是自我欣赏出来的.要么发表到公共场合,给好事者奚落几句,感觉岂不是更加如坠冰窖?

E,回家睡觉.

大概,只有这个最实际了吧,虽然还有一小时才下班,还要过一小时才能到家,还没有洗澡吃饭,温暖的被窝仍然是最安全,最诱人的了!

2006年03月13日

来源:http://www.net.cn/static/newscenter/news_050905.asp

似乎推出有半年了,今天才知道.(-_-)

原文:

中国万网推出域名空间站服务

尊敬的万网用户:
  您好!

  感谢您对中国万网的关注与支持!

  中国万网于9月5日推出域名空间站服务,这是目前业界功能最为强大的域名parking服务。
  
  域名空间站说明:
  1、域名空间站使用域名和域名密码登录,地址:kit.hichina.com,轻点鼠标即能生成精美网站。
  2、无需购买主机,拥有域名就拥有域名空间站,即可发布网站。
  3、域名空间站生成的所有页面将插入万网两个图片广告;使用域名空间站可以在线编辑发布网页,
    不提供FTP账号。
  4、域名空间站支持的域名:注册商为万网(hichina)的.com/.net/.cn英文域名。
  
  域名空间站使用步骤:
  1、将您的域名解析到 218.30.103.51 (即域名A记录指向 218.30.103.51)
  2、用域名和域名密码登录 kit.hichina.com,需要先设置A记录指向,否则不能登录。
  3、定制域名网页
  4、发布
  
  IE浏览即可看到域名网站效果。

中国万网
2005年9月5日

用户要求:有一份报价格,要求把C列的所有报价都上涨3美元,把D列的报价都上涨1.7美元.由于每列的行数很多,并且价格各不相同,如果逐个更新,工作量将会很大,并且容易出错.下面这个脚本可以又快又准地解决这个需求.

Sub changeValue()
    ‘用户输入
    Dim userInput
    userInput = Application.InputBox("输入开始单元格,结束单元格,以及需要添加的数字,格式如A1,A2,2.5")
    ‘转为数列
    Dim arrUserInput
    arrUserInput = Split(userInput, ",")
    ‘起始单元格
    Dim Cx, Cy
    Cx = Mid(arrUserInput(0), 1, 1)
    Cy = Mid(arrUserInput(0), 2, 2)
    ‘结束单元格
    Dim Dx, Dy
    Dx = Mid(arrUserInput(1), 1, 1)
    Dy = Mid(arrUserInput(1), 2, 2)
    ‘涨幅
    Dim upRange
    upRange = arrUserInput(2)
    ‘转换
    Dim Ex, Ey, Fx, Fy
    Ex = Asc(Cx) – 64
    Ey = Cy
    Fx = Asc(Dx) – 64
    Fy = Dy
    ‘进行操作
    Dim i, j
    For i = Ey To Fy
        For j = Ex To Fx
            Dim value
            value = Cells(i, j)
            Cells(i, j) = value + upRange
        Next
    Next
End Sub

将上面这段代码置入Excel的宏中,需要更新报价的时候,执行ChangeValue这个宏,按要求键入对应的起始单元格,结束单元格,以及增加的值即可.

2006年03月10日
抽烟其实与自杀没有多大联系,这儿把它们放在一起,只是因为听说过一句话:抽烟有害健康,等于慢性自杀.也就是说,自杀是一下子就把生命用完了,而抽烟却是每天用一点儿,需要经过好几年甚至好几十年的努力才能把生命用完.于是由于这量方面的区别,导致了质方面的区别,也导致了人们对这两种活动截然不同的看法.对于自杀的行为,人们通常会想法设法去劝止它,不让它发生,而对于抽烟,虽然也有一些忠告,如"吸烟危害健康"之类的话,但却极少有人会当面去游说,并且吸烟的人还会鼓励没有吸烟的人加入他们的行列.
这些天来逐渐形成一种习惯,每天早晨上班的时候,拿来抹布抹抹桌面和电脑之类的,因为公司办公室就在公路旁边,并且,大家都知道的啦,广州的尘是很厉害的,不管在哪,三天不动的地方,大概都会蒙上一层灰尘的.如果长久不抹,等到突然有需要清理一下的时候,将会发现是一项艰巨的任务.打那次艰巨的任务之后,我决定向抽烟的人学习,与其痛苦地自杀,不如享受抽烟的乐趣.当然,我是不会抽烟的,但我会抹台,每天花10分钟抹一下,心理和实际工作环境都舒服.
2006年03月09日

//: c09:SlowMap.java
// A Map implemented with ArrayLists.
import java.util.*;
import com.bruceeckel.util.*;

public class SlowMap extends AbstractMap {
 private ArrayList
  keys = new ArrayList(),
  values = new ArrayList();

 public void clear() {
  keys.clear();
  values.clear();
 }  
 
 public boolean containsKey(Object key) {
  return keys.contains(key);
 }
 
 public boolean containsValue(Object value) {
  return values.contains(value);
 }
 
 public Set entrySet() {
  Set entries = new HashSet();
  Iterator
   ki = keys.iterator(),
   vi = values.iterator();
  while(ki.hasNext())
   entries.add(new MPair(ki.next(), vi.next()));
  return entries;
 }
 
 public boolean equals(Object o) {
  return this.entrySet().equals(((Map)o).entrySet());
 } 
 
 public Object get(Object key) {
  if(!keys.contains(key))
   return null;
  return values.get(keys.indexOf(key));
 }
 
 public int hashCode() {
  return keys.hashCode() + values.hashCode();
 }
 
 public boolean isEmpty() {
  return keys.isEmpty();
 }
 
 //Neither implement 1 nor implement 2 can implementing
 //the map and the set to be ralated.
 public Set keySet() {
  //Implement 1
  //Set keyset = new HashSet();
  //Iterator it = keys.iterator();
  //while(it.hasNext())
  // keyset.add(it.next());
  //return keyset;
  //Implement 2
  return new HashSet(keys);
 } 

 public Object put(Object key, Object value) {
  Object result = get(key);
  if(!keys.contains(key)) {
   keys.add(key);
   values.add(value);
  } else
   values.set(keys.indexOf(key), value);
  return result;
 }
 
 public void putAll(Map t) {
  Set mes = t.entrySet();
  Iterator it = mes.iterator();
  while( it.hasNext() )
  {
   Map.Entry me = (Map.Entry)it.next();
   keys.add( me.getKey() );
   values.add( me.getValue() );
  }
 }

 public Object remove(Object key) {
  if(!keys.contains(key))
   return null;
  int index = keys.indexOf(key);
  Object result = values.get(index);
  keys.remove(index);
  values.remove(index);
  return result;
 }

 public int size() {
  return keys.size();
 }
 
 public Collection values() {
  return values;
 }

 public static void main(String[] args) {
  SlowMap m = new SlowMap();
  Collections2.fill(m,
   Collections2.geography, 25);
  System.out.println(m);
 }
}///:~

//: c09:MPair.java
// From ‘Thinking in Java, 2nd ed.’ by Bruce Eckel
// www.BruceEckel.com. See copyright notice in CopyRight.txt.
// A Map implemented with ArrayLists.
import java.util.*;

public class MPair
implements Map.Entry, Comparable {
  Object key, value;
  MPair(Object k, Object v) {
    key = k;
    value = v;
  }
  public Object getKey() { return key; }
  public Object getValue() { return value; }
  public Object setValue(Object v){
    Object result = value;
    value = v;
    return result;
  }
  public boolean equals(Object o) {
    return key.equals(((MPair)o).key);
  }
  public int compareTo(Object rv) {
    return ((Comparable)key).compareTo(
      ((MPair)rv).key);
  }
} ///:~

//: c09:SlowMap.java
// A Map implemented with ArrayLists.
import java.util.*;
import com.bruceeckel.util.*;

public class SlowMap extends AbstractMap {
 private ArrayList
  keys = new ArrayList(),
  values = new ArrayList();
 public Object put(Object key, Object value) {
  Object result = get(key);
  if(!keys.contains(key)) {
   keys.add(key);
   values.add(value);
  } else
   values.set(keys.indexOf(key), value);
  return result;
 }
 public Object get(Object key) {
  if(!keys.contains(key))
   return null;
  return values.get(keys.indexOf(key));
 }
 public Object remove(Object key) {
  if(!keys.contains(key))
   return null;
  int index = keys.indexOf(key);
  Object result = values.get(index);
  keys.remove(index);
  values.remove(index);
  return result;
 }
 // I add this method to fit the clear action
 public void clear() {
  keys.clear();
  values.clear();
 }
 // I add this method to fit the key set operation,
 // but failed, the operation on set doesn’t do any
 // effect on the map
 public Set keySet() {
  Set keyset = new HashSet();
  Iterator it = keys.iterator();
  while(it.hasNext())
   keyset.add(it.next());
  return keyset;
 }
 public Set entrySet() {
  Set entries = new HashSet();
  Iterator
   ki = keys.iterator(),
   vi = values.iterator();
  while(ki.hasNext())
   entries.add(new MPair(ki.next(), vi.next()));
  return entries;
 }
 public static void main(String[] args) {
  SlowMap m = new SlowMap();
  Collections2.fill(m,
   Collections2.geography, 25);
  System.out.println(m);
 }
}///:~

//: c09:Map1.java
// Things you can do with Maps.
import java.util.*;
import com.bruceeckel.util.*;

public class Map1 {
 static Collections2.StringPairGenerator geo =
  Collections2.geography;
 static Collections2.RandStringPairGenerator rsp =
  Collections2.rsp;
 // Producing a set of keys:
 public static void printKeys(Map m) {
  System.out.print("Size = " + m.size() + ", ");
  System.out.print("Keys: ");
  System.out.println(m.keySet());
 }
 // Producing a collections of values:
 public static void printValues(Map m) {
  System.out.print("Values: ");
  System.out.println(m.values());
 }
 public static void test(Map m) {
  Collections2.fill(m, geo, 25);
  // Map has ‘Set’ behavior for keys:
  Collections2.fill(m, geo.reset(), 25);
  printKeys(m);
  printValues(m);
  System.out.println(m);
  String key = CountryCapitals.pairs[4][0];
  String value = CountryCapitals.pairs[4][1];
  System.out.println("m.containsKey(\"" + key +
   "\"): " + m.containsKey(key));
  System.out.println("m.get(\"" + key + "\"): "
   + m.get(key));
  System.out.println("m.containsValue(\""
   + value + "\") " +
   m.containsValue(value));
  Map m2 = new TreeMap();
  Collections2.fill(m2, rsp, 25);
  m.putAll(m2);
  printKeys(m);
  key = m.keySet().iterator().next().toString();
  System.out.println("First key in map: " + key);
  m.remove(key);
  printKeys(m);
  m.clear();
  System.out.println("m.isEmpty(): "
   + m.isEmpty());
  Collections2.fill(m, geo.reset(), 25);
  // Operations on the set change the Map:
  // You will find that it do in the HashMap and TreeMap,
  // but not in SlowMap!
  System.out.println(m.keySet());
  m.keySet().removeAll(m.keySet());
  System.out.println("m.isEmpty(): "
   + m.isEmpty());
 }
 public static void main(String[] args) {
  System.out.println("Testing HashMap");
  test(new HashMap());
  System.out.println("Testing TreeMap");
  test(new TreeMap());
  System.out.println("Testing SlowMap");
  test(new SlowMap());
 }
}///:~

模型:有一台windows 2000 server 作为服务器,提供文件共享服务,客户机使用windows xp.

问题:直接在网上邻居中打开服务器时,提示没有权限,使用运行\\server\\ip-address的方式也同样结果.

间接解决办法:1,使用映射网络硬盘的方法,在映射的设置中指定登陆服务器的用户名和密码;2,在服务器上创建与客户机的用户名和密码相同的账户.这两种解决办法看起来不一样,但原理相同:指定账户和密码.

悬疑:WINDOWS XP系统为什么会直接使用使用中的用户资料(用户名和密码)来尝试登陆服务器,而不弹出提示窗口要求用户输入呢(在WINDOWS SERVER2003上是采用后者的方式)?或者说,在WINDOWS XP上有没有可以提供设置的地方,设置默认访问服务器的用户名和密码,而不是直接采用使用中的用户资料呢(比如使用GUEST以及空密码)?

疑惑中,请先知指点一二,感激不尽.

2006年03月08日

祝各位姐妹青春永驻,美丽不老. 

2006年03月06日

这两天设计数据库以及操作数据库的小程序,经常会碰到出错的提示信息,出现了两次,最终结果都是因为使用了数据库的保留字,看来这个问题值得好好注意一下,以免浪费宝贵的时间啦!